【问题标题】:Search in databank for Integer with Like Hibernate在数据库中搜索 Integer with Like Hibernate
【发布时间】:2023-11-26 20:44:01
【问题描述】:

我想用 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

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

【问题讨论】:

    标签: java mysql sql hibernate jpql


    【解决方案1】:

    cast 不是 jpql 的一部分,您在调用 EntityManager#createQuery 时使用它。您应该使用 EntityManager#createNativeQuery 而不是使用普通 sql。请参阅documentation

    【讨论】: