【问题标题】:How do I create Named Queries in a Separate file如何在单独的文件中创建命名查询
【发布时间】:2012-01-14 12:29:43
【问题描述】:

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

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

public class AllNamedQueries {

}

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

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

【问题讨论】:

    标签: java jpa named-query


    【解决方案1】:

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

    基于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>
    

    【讨论】:

    • 我使用的是 OpenJPA,而不是休眠。
    • Hibernate 和什么有什么关系?这是 JPA,按照规范。
    • @SQC: orm.xml 是 JPA 标准描述符:在 XML 中定义 JPA 映射 - 适用于每个 JPA 提供程序。见:openjpa.apache.org/builds/1.0.0/apache-openjpa-1.0.0/docs/…
    • 谢谢大家,我以为 OpenJPA 不使用一个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2018-10-03
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2019-01-12
    • 2017-12-04
    相关资源
    最近更新 更多