一尘不染

JPA为什么使用createNamedQuery

hibernate

我正在将DAO层从使用Hibernate API更改为使用纯JPA
API实现的过程中。似乎推荐的方法是使用实​​体管理器中的createNamedQuery。命名查询存储在模型/实体类的注释中。这对我来说毫无意义。为什么要在模型对象中定义JPA查询,却在DAO中使用它们。仅在DAO本身中使用createQuery并在DAO中定义查询,甚至在DAO本身中定义命名查询,是否更有意义?

对于已经使用JPA API实现DAO层的人员,您如何定义查询?


阅读 315

收藏
2020-06-20

共1个答案

一尘不染

我使用命名查询。

这样做有两个原因:

  1. 它将它们放置在更中心的位置,而不是通过随机的createQuery()调用分散在代码中;和
  2. 构建过程可以验证查询(非常有用)。
2020-06-20