【发布时间】:2022-01-23 20:44:13
【问题描述】:
我正在使用 JPA 查询数据库,但发生了一些奇怪的事情。在某些情况下,演员表可以正常工作并编译,但使用 BigDecimal 它不允许我使用演员表来制作带有字符串的 LIKE。以下是部分有效的代码:
"AND cast(pe.pesoObjetivo as string) LIKE :pesoObjetivo% "
pesoObjetivo 是一种数据类型 Double
@Column(name = "peso_objetivo")
private Double pesoObjetivo;
但是当我尝试使用
执行查询时"AND cast(pe.pesoPregestacional) LIKE :pesoPregestacional% " +
pesoPregestacional 是一个 BigDecimal
@Column(name = "peso_pregestacional", precision = 21, scale = 2)
private BigDecimal pesoPregestacional;
我收到以下错误
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ) near line 1, column 701
以及我的其余查询 在 JPA 中,我如何使用字符串对 BigDecimal 数据进行 LIKE 操作?或者我的错误是什么? 通过注释掉这行代码或使用
"AND pe.pesoPregestacional = :pesoPregestacional% " +
一切正常,只是不是我想要的。很明显,错误就在这句话中
【问题讨论】:
-
喜欢数字数据类型总是感觉有点奇怪。你为什么要这么做?
-
为了从FrontEnd做一个过滤器,如果你传入一个空字符串,它不会被考虑,但是如果你写一个值,它会在表中寻找它对应的值具有相同的数据类型。
标签: java sql spring spring-boot jpa