java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 ->1
というエラーが出る場合があります。ある特定の日付が格納されている場合にこのエラーが出ますが、その日付とは下記の4つ。
1948-05-02 1949-04-03 1950-05-07 1951-05-06
何の日付かと言うと、過去に日本で4回だけ導入されたサマータイムの開始日です。どうしてエラーが起きるかというと、1つ目の例で言うと、1948-05-02の00:00:00から00:59:59はこの世に存在しないからです。つまりdate型カラムで1948-05-02が格納されている場合、DBには1948-05-02 00:00:00に相当するデータがありますが、その時間が当時の日本には存在しなかったのでエラーが出るわけです。
この場合、JDBCの接続URLを次のように修正する必要があります。
serverTimezone=Asia/Tokyo ↓ serverTimezone=GMT%2B9
このように、タイムゾーンIDではなくオフセットで指定するとサマータイムを認識させないで済みます。