Ich habe eine einfache Methode im Repository meiner Java-Anwendung:
Code: Select all
@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: Anweisung konnte nicht ausgeführt werden; SQL [n/a]; Die verschachtelte Ausnahme ist org.hibernate.Exception.SQLGrammarException: Anweisung konnte nicht ausgeführt werden, verursacht durch: SQLGrammarException: Anweisung konnte nicht ausgeführt werden, verursacht durch: PSQLException: FEHLER: Typ Bytea kann nicht in Zeit ohne Zeitzone umgewandelt werden
Und dieser Fehler ist aufgetreten, weil ich versucht habe, in „additional_session_end_ts NULL“ einzufügen.
Ich habe verschiedene Ansätze wie oben ausprobiert, COALESCE(CAST(:additionalSessionEndTime AS time), NULL::time), fügen Sie einfach null ein und nichts funktioniert bei mir.
Ich möchte nur die einfache Logik haben – fügen Sie einen Wert in die Spalte „additional_session_end_ts“ ein oder fügen Sie NULL ein, wenn der Wert vorhanden ist null.
Wie kann ich das machen?