java - 尝试调用 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
推荐阅读
- r - 将每一行的值与匹配某一列但不匹配另一列的所有行相乘
- javascript - 如何将我的工作 PHP 脚本转换为 CryptoJS 以访问远程 API?
- python - 如何修复 Arch Linux 上缺少的“Python.h”?
- javascript - 3 卡片网格布局
- r - 使用 glmnet 的逻辑回归 - 输入数据的结构
- c# - 碰撞时不播放声音
- r - 在r编程中检索矩阵中最大值的行名
- python - Sphinx 和 autodoc:numpy.core.multiarray 导入失败 + 模拟具有不受支持的操作数类型
- android - 保持 Android 进程(应用程序)始终运行
- javascript - 从 node4excel 到 multer 的文件