我有一个带有执行本机查询以从数据库中获取数据的方法的存储库:
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中定义的属性?