免责声明:我对任何拼写错误表示歉意,因为英语不是我的主要语言。
我想在MySQL数据库中搜索一个整数。 我正在使用JDK-12.0.2
和Hibernate
如果它不是整数,我可以使用以下代码:
: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%';
但如果使用强制转换(id as CHAR)
替换定义
,则会出现以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: Could not resolve requested type for CAST : CHAR
有人能帮我解决这个问题吗? (也欢迎改进我工作代码的建议)
cast
不是jpql的一部分,您在调用EntityManager#CreateQuery
时使用它。 您应该使用EntityManager#CreateNativeQuery
来使用纯SQL。 请参阅文档。