Hibernate 5和类型化标准查询(JPA2)

MarcG:

问题:

1)如果我从Hibernate 4.x升级到Hibernate 5.x,我仍然可以使用“旧”条件查询,还是仅使用新的Typed JPA2条件查询?旧版本已弃用,还是可以同时使用?

2)我是否正确理解新的类型化标准会迫使我为我拥有的每个实体类创建第二个类,从而使类的数量重复?我应该手动创建这些类吗?如果没有,怎么办?兰特:必须重复上课似乎很奇怪,所以我一定会对它有所误解?那不是过度杀伤和不必要的复杂化吗?

JB Nizet:
  1. 不,不建议使用旧的标准API。只需查看javadoc:没有弃用警告。但是我建议您坚持使用标准的JPA API,而不要使用标准的JPA API和专有的Hibernate API。

  2. 不,不会强迫你。您仍然可以使用字符串标识符。但是,如果以类型安全为目标,则强烈建议使用元模型类。

当然,您不需要手动生成这些。它们是由注释处理器根据您的实体类及其映射注释生成的。您可能会觉得它很奇怪,但是root.get(MyEntity_.firstName)使用它更安全root.get("firstName"):在编译时检测到错字,如果将字段重构为firstname,则编译器将生成错误,而不是让您使用旧的"firstName"字符串标识符。

我仍然发现JPQL查询更容易编写,理解和维护,并且仅在必须基于多个...标准生成动态查询时才使用标准API。使用自动测试来检查查询是否正确。即使使用条件查询BTW,也要这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章