欢迎来到Hibernate社区通讯,在这里我们分享特别适合用户使用的博客文章、论坛和StackOverflow问题。
文章
在这篇文章中,Manika Singh展示了在使用JPA和Hibernate时应该避免的7个错误。
如果您想在JPQL或Criteria API查询中执行自定义SQL函数,最好注册该函数,以便Hibernate知道如何传递参数并映射返回值。这篇文章解释了您如何注册一个可以接受执行Query
的参数或通过JPQL查询中的实体属性引用底层表列的SQL函数。
这篇文章解释了JPA标准与实现Java持久化规范的Hibernate框架之间的区别。
如果您使用PostgreSQL并想将Java枚举映射到PostgreSQL特定的枚举类型,这篇文章解释了您如何做到这一点,甚至无需编写新的自定义Hibernate类型。
对于我们的葡萄牙语读者,这篇文章解释了N+1查询问题是什么,以及在使用JPA和Hibernate时如何克服它。
org.hibernate.Hibernate
实用程序类定义了一个接受实体或集合代理的initialize
方法,并强制代理初始化。但是,这仅在代理可以从第二级缓存中获取时才有效。如果代理初始化触发数据库查询,那么在初始数据库查询中简单地获取延迟关联将更加高效。更多详细信息,请参阅这篇文章。
Debezium 是一个开源框架,它允许您从数据库日志中提取 CDC(变更数据捕获)事件,并通过嵌入式驱动程序或使用 Kafka 消费这些事件。《[这篇文章](https://debezium.io/blog/2018/12/05/automating-cache-invalidation-with-change-data-capture/)》解释了如何使用 Debezium 检测 Hibernate 外部的数据库变更,并使与最近更改的表行相关联的二级缓存条目失效。
Hibernate 是一个非常可定制的框架,因为您可以覆盖默认的 CRUD 语句,所以实现一个软删除机制非常容易,该机制允许您在数据库中保留已删除的实体,但在逻辑删除后在应用程序中隐藏它们。《[这篇文章](https://thoughts-on-java.org/hibernate-tips-exclude-deactivated-elements-from-association/)》展示了如何从给定的关联中排除已删除的实体。
升级时间
Hibernate ORM 项目有两个版本发布
-
Hibernate ORM 5.4.0 CR2 是 5.4 分支的第二个候选版本。我们期待收到您对该版本的反馈。
-
Hibernate ORM 5.1.17 版本为 5.1 分支提供了错误修复和改进。如果您正在使用 Hibernate ORM 5.1,您应该升级以利用最新的增强功能。
Hibernate Search 项目也有两个版本发布
-
Hibernate Search 6.0.0 Alpha1 是该项目第六个主要版本的第一个版本。尽管由于其局限性和 API 仍不稳定,这个版本不适合生产,但它是一个很好的方式来了解 Hibernate Search 将走向何方,并提供您的反馈。
-
Hibernate Search 5.11.0 CR1 是 5.11 分支的第一个候选版本,它主要包括对 Hibernate ORM 5.4.0.CR2 的升级。