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

标签 java jpa named-query

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

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

public class AllNamedQueries {

}

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

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

最佳答案

您可以使用允许您在 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>

关于java - 如何在单独的文件中创建命名查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407799/

相关文章:

java - 减少其中一个状态抛出异常的简洁方法

java - Hibernate 获取表属性的列表<String>

java - 如何在 Hibernate/JPA 中表示加权多对多关系?

java - FilterRegistrationBean 需要使用 Spring Security 启用 CORS 支持吗?

java - SonarQube 不再检测 S1166(异常处理程序应保留原始异常)

java - 高效的 JPA 查询,以查找是否至少存在一条具有给定条件的记录

java - 加入@NamedQuery : Unexpected token ON

java - 在 Hibernate 的 NamedQuery 中使用用户定义的变量

java - 如何通过hibernate生成namedQuery?

java - 使用 Gradle 执行单个 JUnit5 测试