【发布时间】:2019-08-30 19:49:21
【问题描述】:
我在我的 JPA 存储库接口中有自定义长 sql 查询字符串。我觉得将此查询移动到一些属性文件,因为当我想对我的数据库执行查询时,我必须删除所有“+”加号和双引号。与其删除,不如将所有查询放入属性或 yaml 文件中。我可以轻松使用和修改。请建议我这种方式是正确的方法。
@Repository
public interface LoanRepository extends JpaRepository<Loan, Integer> {
@(name= "{long query}")
public List<Loan> findLoansByIdAndBalance();
}
【问题讨论】:
-
如果你把
$放在开头会发生什么,那么它将是"${long.query}" -
抛出错误 java.sql.SQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“${long.query}”附近使用正确的语法
-
请任何人帮助我。还有其他方法可以实现吗?
-
可能你可以在一个类中添加
constant variables并调用它,例如 static final LOANS_BY_ID_AND_BALANCE = "SELECT x FROM x";并调用@Query(Queries.LOANS_BY_ID_AND_BALANCE)
标签: spring-boot jpa named-query