Hibernate ORM 6.2.0.CR2刚刚发布,带来了许多新功能。
自6.2 CR1发布以来,已经过去了超过一个月。在这段时间里,我们收到了许多非常好的反馈和错误报告,并解决了100多个Jira报告。感谢您的反馈!
代码已经非常稳定,因为SQL AST的变化也变得平滑。
对“可选表”的SQL MERGE更新
基于SQL AST,Hibernate现在可以使用SQL MERGE
命令来处理对可选表的更新。
对可选表的更新将会有三种最终结果
-
如果没有在表中找到对应的行,则插入该行
-
否则,如果所有新的“值”列都是null,则删除该行
-
否则更新该行
传统行为是在运行时自行进行这些if检查,并单独执行插入、更新和删除语句。而MERGE
命令允许在单个JDBC调用中更有效地完成这些操作。
目前这支持以下数据库
回退机制是使用传统行为。
专有SQL类型
处理某些SQL类型需要访问特定JDBC驱动程序的类,以便正确读取和写入该类型的数据。在某些环境中(例如各种容器),这些类对Hibernate不可用。
现在Hibernate可以更好地处理这些情况,通常基于类型转换。例如,我们可能通过将JSON表达式包装在类型转换函数中来将ResultSet中的JSON值读取为String。