首页 > 解决方案 > 如何在 Spring Boot 中从应用程序属性文件中读取 jpa 命名查询?

问题描述

我在我的 JPA 存储库接口中有自定义长 sql 查询字符串。我觉得将此查询移动到一些属性文件,因为当我想对我的数据库执行查询时,我必须删除所有“+”加号和双引号。与其删除,不如将所有查询放入属性或 yaml 文件中。我可以轻松使用和修改。请建议我这种方式是正确的方法。

@Repository
public interface LoanRepository extends JpaRepository<Loan, Integer> {

     @(name= "{long query}")
     public List<Loan> findLoansByIdAndBalance();
}

标签: spring-bootjpanamed-query

解决方案


这是一个如何从 yml 文件中获取值的示例。

在您的 application.yml 中:

data:
   query:
      queryGetNames: here_your_query

在你的课堂上,你用这个来调用这个值:

@Setter(onMethod_ = {@Value("${data.query.queryGetNames}")})
private String query;

注意:@Setter 注解来自 lombok


推荐阅读