如何在单独的文件中创建命名查询

时间:2011-12-06 22:27:21

标签: java jpa named-query

我需要将所有命名查询保存在单独的文件中。例如

@javax.persistence.NamedQueries({
    @NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e")})

public class AllNamedQueries {

}

现在很多本身会导致错误“命名查询只能在Entity或MappedSuperClass类中定义”。

如何在单独的文件中创建命名查询?另外,我指的是实体文件以外的文件。

1 个答案:

答案 0 :(得分:3)

您可以使用允许您在XML中定义JPA映射的orm.xml。这种方法是等效的,并且会覆盖注释。

基于define named query in orm.xml with jpa and hibernate的示例:

<entity class="com.example.Employee">
    <table name="Employee.findAll" />
    <named-query name="findAll">
        <query><![CDATA[
          SELECT e
          FROM Employee e
        ]]></query>
    </named-query>
</entity>