欢迎来到 Hibernate 社区通讯,在这里我们分享博客文章、论坛和 StackOverflow 中与用户特别相关的问答。

文章

自 Hibernate 5 开始,GenerationType.AUTO 标识符策略由 SequenceStyleGenerator 处理。如果底层数据库支持序列,则将使用数据库序列来生成实体标识符。否则,将使用 TABLE 生成器,这可能会导致性能和可扩展性问题,如这篇文章中所示。

因此,如果您正在使用 MySQL,您最好使用 IDENTITY 生成器。如果数据库的可移植性是您关注的重点,则默认情况下可以使用 SEQUENCE 生成器,因为它由 Oracle、SQL Server 2012、PostgreSQL 和 MariaDB 10.3 支持,只需在 MySQL 中使用 orm.xml 转换回 IDENTITY。有关如何使用 XML 配置覆盖基于注解的映射的更多详细信息,请参阅这篇文章

Anghel Leonard 撰写了一篇文章,其中涵盖了 50 多个 JPA 和 Hibernate 性能技巧

在处理 Hibernate 时,通常使用 Camel Case(例如 phoneNumber)表示实体属性,而在数据库方面,Snake Case(例如 phone_number)表示法更为普遍。虽然您可以使用 @Column 注解将每个实体属性映射到其数据库标识符,但使用 Hibernate 命名策略来一致地应用这些规则要方便得多。

这篇文章介绍了可从 hibernate-types 开源项目获取的 CamelCaseToSnakeCaseNamingStrategy

这篇文章中,Eugen Paraschiv向您展示了如何在使用JPA和Hibernate时修复java.lang.String cannot be cast to [Ljava.lang.String错误。

JPA规范为JPQL或Criteria API查询中的DISTINCT关键字提供了双重含义。虽然传递DISTINCT关键字对于标量查询来说是可行的,但是您不希望这样做,因为在这种情况下DISTINCT仅在父-子树表示形式中组装JDBC ResultSet之后使用。为了防止将DISTINCT关键字传递给SQL查询,您应该使用HINT_PASS_DISTINCT_THROUGH JPA查询提示。

Hibernate 5.4提供了一种从字符串表示形式构建JPA EntityGraph的方法。有关此新功能的更多详细信息,请参阅这篇文章

升级时间

Hibernate ORM 5.4.0 CR1已发布。这是5.4版本的第一个发布,因此我们期待着收到您对我们集成到框架中的最新功能的反馈。有关更多详细信息,请参阅发布说明

Hibernate Search 5.10.5已发布。有关更多详细信息,请参阅发布说明


返回顶部