在哪里使用@NamedQueries

时间:2013-08-13 19:34:04

标签: java hibernate jpa

我正在使用@NamedQueries但不确定使用它的最佳方法是什么。

  1. 在实体类
  2. 上方使用它
  3. 在DAO类
  4. 上方使用它
  5. 创建一个NamedQueriesFactory类,该类将具有所有实体的集中命名查询
  6. 任何其他更好的方式。

2 个答案:

答案 0 :(得分:1)

我很好的方法是将所有这些文件放在一个经常使用的xml文件中。这会使您的查询外部化,并且您可以自由地将此xml文件发送给某个DBA,以便以后更轻松地进行分析。

答案 1 :(得分:1)

2(Dao)和3(工厂类)不是真正的选择,假设那些不是实体,因为根据documentation

  

NamedQueries注释可以应用于实体或映射   超类。

与1(实体)和4(映射的超类)一样。我会通过在查询中访问的返回类型和/或主要实体来查找查询。因为无法从JPQL查询返回映射的超类,所以答案为1(实体)。