gpt4 book ai didi

java - Hibernate 5 和类型化条件查询 (JPA2)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:16 25 4
gpt4 key购买 nike

问题:

1) 如果我从 Hibernate 4.x 升级到 Hibernate 5.x,我是否仍然可以使用“旧”条件查询,或者只能使用新的Typed JPA2 条件查询?旧的是否已弃用,或者我可以同时使用两者吗?

2) 我是否正确理解新的类型化标准迫使我为我拥有的每个 实体类创建第二个类,从而重复类的数量?我应该手动创建这些类吗?如果没有,怎么办?咆哮:必须复制类(class)似乎很奇怪,所以我一定是误解了它?这不是矫枉过正和不必要的复杂吗?

最佳答案

  1. 不,旧标准 API 并未弃用。看看the javadoc : 没有弃用警告。但我建议坚持使用标准 JPA API,而不是将标准 JPA API 与专有 Hibernate API 混合使用。

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

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

不过,我仍然发现 JPQL 查询的编写、理解和维护要简单得多,并且只有在必须基于多个...标准生成动态查询时才会使用标准 API。使用自动化测试来检查查询是否正确。做同样的事情,即使是标准查询,顺便说一句。

关于java - Hibernate 5 和类型化条件查询 (JPA2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35824417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com