【发布时间】:2022-01-09 02:34:54
【问题描述】:
我正在寻找一种方法来在本机查询中绑定给定参数,其中值必须在单引号内,如下所示:
@Transactional(readOnly = true)
@Query(value = " SELECT c.ID " +
" FROM table1 clh " +
" LEFT JOIN table2 nks " +
" on clh.SERIAL = nks.SERIAL_REF " +
" WHERE clh.CREATED_DATE >= :now - interval ':timeThreshold' HOUR " +
" AND nks.SERIAL_REF IS NULL" , nativeQuery = true)
List<Long> getIdsWithoutAnswer (@Param("timeThreshold") Integer timeThreshold, @Param("now") LocalDateTime now);
但是,当我尝试运行它时,它会导致 hibernate 无法绑定 timeThreshold 值,因为它是在单引号 '' 中提供的。
有谁知道如何解决这个问题?
【问题讨论】:
-
您的 SQL 数据库是什么(例如 MySQL、Postgres、Oracle)?
-
尝试删除引号。但我什至不确定你是否可以在那里有绑定变量?
-
@TimBiegeleisen 我在这种情况下使用 Oracle。
-
@SimonMartinelli 我试图删除单引号,但随后它抱怨在尝试运行查询时不是有效的语法。我也尝试将它作为字符串传递,无论是否带有单引号;也没有用:(
标签: java hibernate jpa spring-data-jpa