如何将@Query sql 存储在 CrudRepository 的外部文件中?

2022-09-02 13:01:12

我使用s进行数据库连接。springCrudRepository

现在我需要一个相当长(几行)的sql查询,我宁愿在classpath的文件中维护它,而不是直接在代码中维护。

但是我怎么能做到这一点呢?我的存储库如下所示:

@Query(value = "<my very long sql query>", nativeQuery = true) //how to inject file content?
@Modifying
@Transactional
public void executeSpecificSql();

答案 1

请按照以下步骤操作。

  1. 在 src/main/resources-->META-INF 文件夹中创建 jpa-named-queries.property 文件enter image description here

  2. 在给定属性文件中隐藏查询。enter image description here上面的截图仔细看看。此处的组是实体名称,而方法应存储库接口中定义的方法匹配。查询应使用对象名称而不是表名称,而不是列名称,而是在实体中为相应字段提供变量名称。

  3. 具有属性名称的接口方法方法

    List item


答案 2

如果您的项目设置具有资源文件夹,请在文件下创建并将键值对添加为 。春季数据将回升。/META-INF/jpa-named-queries.propertiesrepoClass.methodName=yoursql

对于较长的查询,最好使用带有标记的属性文件:https://stackoverflow.com/a/19128259/1194415xmlCDATA


推荐