Java spring引导应用程序中的外部化查询

Java spring引导应用程序中的外部化查询,java,xml,spring,spring-boot,spring-data-jpa,Java,Xml,Spring,Spring Boot,Spring Data Jpa,我使用的是spring boot 1.5.6版本。我想做一件基本的事情,将我的查询从存储库中的@Query注释移动到任何xml文件中 经过一些阅读,我发现我们可以使用orm.xml或jpa命名查询.properties来编写自定义查询 我不理解这些XML文件必须出现在哪里的文件结构。而且我的项目中没有META-INF文件夹 例如: POJO类: @Entity public Class Customer { private int id; private String name; // ge

我使用的是
spring boot 1.5.6版本
。我想做一件基本的事情,将我的查询从存储库中的
@Query
注释移动到任何xml文件中

经过一些阅读,我发现我们可以使用
orm.xml
jpa命名查询.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();

}
公共接口CustomerRepository扩展了分页和排序存储库{
//我需要从外部xml文件中执行此查询,因为它在连接方面可能非常复杂
@查询(“从客户cust中选择cust”)
公共列表findAllCustomers();
}
编辑:参考。我需要知道这些文件(
orm.xml
persistence.xml
)需要存储在哪里,因为我没有
META-INF
文件夹


提前谢谢

resources
文件夹中创建
META-INF
。现在在
META-INF
文件夹中创建
jpa named querys.properties
文件

将查询写入此属性文件,如下所示:

Customer.findAllCustomerByNamedQuery=从客户c中选择c

其中,
Customer
表示实体类的名称,
findAllCustomerByNamedQuery
是查询名称

在您的客户存储库中,编写以下内容以调用在属性文件中编写的查询:


列出findAllCustomerByNamedQuery()

可能重复的是,我遇到了这个问题。但正如我提到的,我没有一个
META-INF
文件夹,我非常困惑这些
properties/xml
文件必须存储在哪里@TODDP请检查github示例,如果META-INF不存在,则必须创建它。谢谢!手动创建META-INF对我来说很有用!有什么原因不能和application.properties这样的文件一起创建吗?我不知道为什么。谢谢!这正是我们想要的。你在哪里找到这些信息的?@SebastianDuque谢谢你的评论。我从spring数据示例存储库中找到了这些信息,以下是链接: