我确实有一个带有 NUMBER(实际上是 BigDecimal,不要问为什么)列的静态元模型。现在我想对该数字列进行 LIKE 查询:
CriteriaBuilder cb;
cb.like(entity.get(Entity_.numbercol), "123%");
哪里entity.get(Entity_.numbercol)
返回一个Path<BigDecimal>
。自然,我得到一个编译错误:...like(Expression<String>, ...) ... not applicable for the arguments (Path<BigDecimal>, ...)
由于 JPA 中的一些错误,铸造列.as(String.class)
失败,但我现在手头没有错误编号。不过,它在最新版本的 JPA/Hibernate 中并未修复。无论如何,它会导致生成一些无效 SQL 语句的运行时异常。
现在我只需要一种方法来获取与 SQL 等效的标准 API
... WHERE numbercol LIKE '123%';
搜索该主题时已经出现以下响应,这些响应无济于事,因为我有一个静态元模型: NHibernate - 使用 Criteria API 对整数列进行 LIKE 搜索的最简单方法?和JPA/Criteria API - Like & equal 问题
有任何想法吗?
在此先感谢多米尼克