У меня есть простой метод в репозитории моего приложения Java:
Код: Выделить всё
@Modifying
@Query(value = "INSERT INTO auction_proposal_list_link (auction_proposal_id, auction_list_id, mini_session_start_time, " +
"mini_session_end_time, additional_session_end_ts, mini_session_start_time_fixed, mini_session_number) " +
"VALUES (:auctionProposalId, :auctionListId, :sessionStartTime, :sessionEndTime, " +
"CASE WHEN :additionalSessionEndTime IS NOT NULL THEN CAST(:additionalSessionEndTime AS time) ELSE CAST(NULL AS time) END, " +
":startTimeFixed, :miniSessionNumber)",
nativeQuery = true)
void insertAuctionBySeries(
@Param("auctionProposalId") Long auctionProposalId,
@Param("auctionListId") Long auctionListId,
@Param("sessionStartTime") LocalTime sessionStartTime,
@Param("sessionEndTime") LocalTime sessionEndTime,
@Param("additionalSessionEndTime") LocalTime additionalSessionEndTime,
@Param("startTimeFixed") Boolean startTimeFixed,
@Param("miniSessionNumber") Long miniSessionNumber
);
Код: Выделить всё
InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statementcaused by: SQLGrammarException: could not execute statement caused by: PSQLException: ERROR: cannot cast type bytea to time without time zone
Я пробовал разные подходы, подобные приведенным выше, COALESCE(CAST(:additionalSessionEndTime AS time), NULL ::time), просто вставьте значение null, и у меня ничего не работает.
Я просто хочу иметь простую логику - вставить какое-то значение в столбец extra_session_end_ts или вставить NULL, если значение равно null.
Как это сделать?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -time-zone