我需要将所有命名查询保存在单独的文件中。例如
@javax.persistence.NamedQueries({
@NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e")})
public class AllNamedQueries {
}
现在很多本身会导致错误“命名查询只能在Entity或MappedSuperClass类中定义”。
如何在单独的文件中创建命名查询?另外,我指的是实体文件以外的文件。
答案 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>