java - 在数据库中搜索 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。请参阅文档。
推荐阅读
- r - 由 / 分隔的嵌套列表的列
- php - Wordpress wp_send_json_success() 成功返回 undefined
- sql - 连接两个表以保留选定的值和空值
- python - 终端找不到 PyCharm 中导入的模块
- python - 获取主键 django 的问题
- swift - 如何在swiftui中修改传递给活动工作表的变量
- java - 这段代码如何遍历 HashMap 的 Integer 值?
- java - Spring Boot REST - 即使具有唯一路径变量,映射也不明确
- ios - 跨 SwiftUI 应用程序共享数据:更好的模式选择?
- mongodb - 使用 Mongo Compass 访问在 WSL2 中的 docker 上运行的 mongo 数据库