Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在何处使用@namedquerys_Java_Hibernate_Jpa - Fatal编程技术网

Java 在何处使用@namedquerys

Java 在何处使用@namedquerys,java,hibernate,jpa,Java,Hibernate,Jpa,我正在使用@namedquerys,但不确定使用它的最佳方式是什么 在实体类之上使用它 在DAO类之上使用它 创建一个NamedQueriesFactory类,该类将对所有实体进行集中命名查询 还有其他更好的方法吗 我认为最好的办法是将它们全部放在一个经常使用的xml文件中。这将使您的查询具体化,并使您可以自由地将此xml文件发送给某些DBA,以便于以后进行分析。2(Dao)和3(factory类)不是实际选项,假设它们也不是实体,因为: NamedQueries注释可以应用于实体或映射 超类

我正在使用@namedquerys,但不确定使用它的最佳方式是什么

  • 在实体类之上使用它
  • 在DAO类之上使用它
  • 创建一个NamedQueriesFactory类,该类将对所有实体进行集中命名查询
  • 还有其他更好的方法吗

  • 我认为最好的办法是将它们全部放在一个经常使用的xml文件中。这将使您的查询具体化,并使您可以自由地将此xml文件发送给某些DBA,以便于以后进行分析。

    2(Dao)和3(factory类)不是实际选项,假设它们也不是实体,因为:

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


    剩下的是1(实体)和4(映射超类)。我将按返回类型和/或查询中访问的主实体定位查询。因为映射的超类不能从JPQL查询返回,所以答案应该是1(实体)。

    在持久化单元xml文件中,您可以通过META-INF/example_orm.xml包含它们