In one of my applications, we use an attribute converter to store zoneddatetime objects as human-readable strings in the database.
This works just fine with hibernate 5.6.11 and even 6.1.1, but in hibernate 6.1.2 and newer it suddenly breaks when comparing dates.
Normal crud operations work as intended.
The error message with hibernate 6 is:
{noformat}java.lang.IllegalArgumentException: Unsure how to handle given Java type [java.lang.String] as TemporalType#TIMESTAMP{noformat}
I’ve created a small sample project to showcase the behavior:
[https://github.com/123Haynes/datahibernate-jpa-demo/blob/main/src/test/java/com/example/datajpademo/DataJpaDemoApplicationTests.java|https://github.com/123Haynes/data-jpacase-demo/blob/main/src/test/java/com/example/datajpademo/DataJpaDemoApplicationTests.java|smartHHH-link](main branch with spring boot 2.7.4 and hibernate 5.6.11, testcase works as intended)
[15605|https://github.com/123Haynes/datahibernate-jpa-demo/blob/spring-boot-3/src/test/java/com/example/datajpademo/DataJpaDemoApplicationTests.java|https://github.com/123Haynes/data-jpacase-demo/blob/springHHH-boot-3/src/test/java/com/example/datajpademo/DataJpaDemoApplicationTests.java15605|smart-link] (branch spring-boot-3 with hibernate
Simply change the Hibernate Version to 6.1.4, testcase fails with1 and the error mentioned) test will pass. Anything newer, and it will fail.
I tested this with a h2 and a hsql database, same error so I don’t think it’s database specific.
I’m not sure if I missed something that I need to change in the release notes, or if this usecase is really broken.
Any help with this would be greatly appreciated. 🙂 |
|