java—在数据库中搜索整数,例如hibernate

sc4hvdpw  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(342)

我想用like在mysql数据库中搜索一个整数。我正在使用 jdk-12.0.2Hibernate 如果不是整数,我可以使用以下代码:

:what = "Help"
(ArrayList<Number>) entityManager.createQuery("FROM Number WHERE definition LIKE :what", Number.class ).setParameter("what", what + "%").getResultList();

这是完美的作品,给我我的数字数组列表。
如果我只使用sql脚本,我可以使用:

SELECT * FROM juna where CAST(id as CHAR) like '1%';

但如果我用 CAST(id as CHAR) 更换 definition 它给了我一个例外:

Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: Could not resolve requested type for CAST : CHAR

有人能帮我解决这个问题吗(也欢迎提出改进我的工作代码的建议)

kiz8lqtg

kiz8lqtg1#

cast 不是jpql的一部分,当您调用 EntityManager#createQuery . 你应该使用 EntityManager#createNativeQuery 而不是使用纯sql。请参阅文档。

相关问题