我使用的是spring带有CrudRepositoryS代表数据库连接。
spring
CrudRepositoryS
现在,我需要一个相当长(几行)的sql查询,我希望将其保存在classpath中的文件中,而不是直接在代码内部。
但是我怎么能做到这一点呢?我的仓库如下:
@Query(value = "<my very long sql query>", nativeQuery = true) //how to inject file content? @Modifying @Transactional public void executeSpecificSql();
如果你的项目设置具有资源文件夹,请在/META-INF/jpa-named-queries.properties文件下创建并将键值对添加为repoClass.methodName=yoursql。spring数据将恢复。
/META-INF/jpa-named-queries.properties
repoClass.methodName=yoursql
对于更长的查询,最好使用xml带有CDATA标签的属性文件
xml
使用以下步骤。
在src / main / resources-> META-INF文件夹中创建jpa-named-queries.property文件
在给定的属性文件中取消查询查询。 看closely.Here 集团是实体名称,而方法应该匹配与法库接口定义。查询应具有对象名称,而不是表名称,而不是列名称,而是提供实体中为各个字段指定的变量名称。
具有属性名称的接口方法
如果您的项目设置具有资源文件夹,请在/META-INF/jpa-named- queries.properties文件下创建并将键值对添加为repoClass.methodName=yoursql。春季数据将恢复。
/META-INF/jpa-named- queries.properties
对于更长的查询,最好使用xml带有CDATA标签的属性文件:https : http://codingdict.com/questions/111287
CDATA