【发布时间】:2019-12-29 21:25:17
【问题描述】:
我有一个存储库,其中包含一个执行本机查询以从数据库获取数据的方法:
public interface ObjRepository extends CrudRepository<Obj, Long> {
@Query(value = "SELECT obj.*\n" +
"FROM obj\n" +
"WHERE obj.value < #{${property.name}} and obj.value2 < :arg", nativeQuery = true)
public List<Obj> getObjs(@Param("arg") int arg);
我正在尝试在查询中使用属性作为常量。该属性在application.properties 文件中定义为property.name=300。当我尝试运行查询时,出现异常:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "{"
如果我将#{${property.name}} 替换为字符串中的实际数字,则查询工作正常。我的 SpEL 语法错了吗?如何在查询字符串中使用 application.properties 中定义的属性?
【问题讨论】:
-
试试
'${property.name}'或#{'${property.name}'}
标签: java spring spring-data spring-el