JUnit テスト ケースの 1 つで H2 データベース テーブルを作成するために使用している次の DDL を検討してください。
CREATE TABLE "CONFIG_INFO"
( "ID" VARCHAR2(12 BYTE),
"RUN_DATE" DATE,
);
私が単体テストを書いているクラスは、このテーブルにレコードを挿入しようとします。レコードを挿入するために次のクエリが実行されていることがわかります。
insert into CONFIG_INFO(ID,RUN_DATE) values (?,?)
ただし、挿入は次の例外で失敗します。
org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into CONFIG_INFO(ID,RUN_DATE) values (?,?)]; Cannot parse "DATE" constant "31-Jan-20";
調べてみたところ、この問題は通常、日付の一部として時間要素がある場合に発生することがわかりました。ただし、コードをデバッグすると、上記のエラー メッセージからもわかるように、Java コードがタイムスタンプ コンポーネントなしで「31-Jan-20」を渡していることがわかります。
このエラーを解決するにはどうすればよいですか?