我们可以在Spring JPA中动态传递@Query(value="动态读取某些属性文件"(吗?或者除了使用@NamedQuery和使用xml文件之外,还有没有办法将查询外部化?
谢谢。
- 在
resources
文件夹下创建文件jpa-named-queries.properties
- 在
jpa-named-queries.properties
文件中添加查询。查询名称格式为Schema_class_name.method_name
。在此波纹管示例中,查询返回Account
实体类,因此第一部分是 Account。点后添加方法名称(您可以命名任何内容,只需确保在存储库类中方法名称匹配(
Account.LoginQuery=SELECT a FROM Account a WHERE a.username = :param or a.email=:param
- 将方法添加到存储库类
AccountRepositoy
Account LoginQuery(String param);
现在,从服务中,您可以像调用其他jpa方法一样调用此方法。
你试过这个吗:
@Value( "${example.query1}" )
private String query1;
@Query(value = query1)
someMethod();