使用 Like Hibernate 在数据库中搜索 Integer
Search in databank for Integer with Like Hibernate
我想在 MySQL 数据库中搜索整数。我正在使用 jdk-12.0.2
和 Hibernate
如果它不是整数,我可以使用此代码:
:what = "Help"
(ArrayList<Number>) entityManager.createQuery("FROM Number WHERE definition LIKE :what", Number.class ).setParameter("what", what + "%").getResultList();
这完美地工作并给了我我的 ArrayList of Numbers。
如果我只使用 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
谁能帮我解决这个问题?
(也欢迎提出改进我的工作代码的建议)
cast
不是 jpql 的一部分,您在调用 EntityManager#createQuery
时正在使用它。您应该使用 EntityManager#createNativeQuery
而不是普通的 sql。见 documentation.
我想在 MySQL 数据库中搜索整数。我正在使用 jdk-12.0.2
和 Hibernate
如果它不是整数,我可以使用此代码:
:what = "Help"
(ArrayList<Number>) entityManager.createQuery("FROM Number WHERE definition LIKE :what", Number.class ).setParameter("what", what + "%").getResultList();
这完美地工作并给了我我的 ArrayList of Numbers。
如果我只使用 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
谁能帮我解决这个问题? (也欢迎提出改进我的工作代码的建议)
cast
不是 jpql 的一部分,您在调用 EntityManager#createQuery
时正在使用它。您应该使用 EntityManager#createNativeQuery
而不是普通的 sql。见 documentation.