3

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

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

public class AllNamedQueries {

}

现在,这本身就会导致错误“命名查询只能在实体或 MappedSuperClass 类中定义”。

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

4

1 回答 1

3

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

基于使用 jpa 和 hibernate 在 orm.xml 中定义命名查询的示例

<entity class="com.example.Employee">
    <table name="Employee.findAll" />
    <named-query name="findAll">
        <query><![CDATA[
          SELECT e
          FROM Employee e
        ]]></query>
    </named-query>
</entity>
于 2011-12-06T22:30:56.757 回答