java - 尝试调用 JPA 函数时出现语法错误

标签 java postgresql hibernate jpa

当我尝试调用 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/

相关文章:

java - 如何从命令行读取值并在引导注释配置类中使用它们来定义spring bean?

java - 如何在java中获取文件内容?

java - Java 如何处理 ArrayList 引用和赋值?

java - org.postgresql.util.PSQLException : FATAL: no pg_hba. 主机的 conf 条目

java - 在不迭代的情况下创建与另一个大小相同的多数组的快速方法?

PostgreSQL:为 boolean 列创建索引

postgresql - pgAdmin 中没有看到 Pgagent 和 Postgis?

postgresql - 如何在存在重复记录的 Postgres 数据库中对不同记录求和?

mysql - 在 Hibernate 中使用密码(对于独立应用程序)

java - @Cascade Delete 不起作用(JPA、Hibernate 和 Spring mvc)