我正在使用spring-boot 1.5.6 RELEASE
。我想做一个基本的事情,将我的查询从存储库中的@Query
注释移动到任何xml文件。
经过一些阅读后,我发现我们可以使用orm.xml
或jpa-named-queries.properties
来编写自定义查询。
我不了解这些XML文件必须存在的文件结构。我的项目中没有META-INF
文件夹。
示例:
POJO班级:
@Entity
public Class Customer {
private int id;
private String name;
// getters and setters
}
存储库:
public interface CustomerRepository extends PagingAndSortingRepository<Customer,Integer> {
// this query I need from an external xml file as it might be quite complex in terms of joins
@Query("Select cust from Customers cust")
public List<Customer> findAllCustomers();
}
编辑:提到this stackoverflow question。我需要知道这些文件(orm.xml
和persistence.xml
)的位置需要存储,因为我没有META-INF
文件夹。
提前致谢!!
答案 0 :(得分:4)
在META-INF
文件夹中创建resources
。现在在jpa-named-queries.properties
文件夹中创建META-INF
文件。
在此属性文件中写下您的查询,如下所示:
Customer.findAllCustomerByNamedQuery=Select c from Customer c
其中Customer
表示实体类的名称,findAllCustomerByNamedQuery
是查询名称
在您的客户存储库中编写此代码以调用在属性文件中编写的查询:
List<Customer> findAllCustomerByNamedQuery();