当我尝试调用 JPA 函数时,此语句出现错误:“:”处或附近的语法错误
public interface BcaTestRepository extends CrudRepository<InBodyBCA, Long> {
@Query(value = "SELECT * FROM in_body_bca bca WHERE person_id = :personId " +
"AND to_timestamp(bca.datetimes::text, 'YYYYMMDDHH24MISS') BETWEEN :startRange AND :endRange",
nativeQuery = true)
List<InBodyBCA> findAllByPersonId(@Param("personId") Long personId,
@Param("startRange") LocalDateTime startRange,
@Param("endRange") LocalDateTime endRange);
但是在 PgAdmin 中查询工作正常
SELECT id, to_timestamp(datetimes::text, 'YYYYMMDDHH24MISS') as dt FROM in_body_bca WHERE to_date(datetimes::text, 'YYYYMMDDHH24MISS')
BETWEEN '2018-05-07' AND '2019-05-07' ORDER BY to_date(datetimes::text, 'YYYYMMDDHH24MISS') DESC ;
最佳答案
此处使用双冒号:bca.datetimes::text
。 JPA 将查找 text
变量名称。
你需要转义它:
bca.datetimes\\:\\:text
关于java - 尝试调用 JPA 函数时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56986135/