我是 hibernate 新手,仍在学习基础知识。如果有人能指出我正确的方向,我将不胜感激。
我有一个类:
目的地
- ID
- 姓名
- 经度
- 纬度
我可以根据 id 读取目的地,如下所示:
List result = session.createQuery("from Destination as d where d.id=2").list();
但是,我想使用名称从数据库读取目的地。我也许可以写这样的东西作为查询:
String name; // name set somewhere else, say a function argument
List result = session.createQuery("from Destination as d where d.name LIKE %"+name).list();
我相信这将产生名称类似于(变量)name
的所有目的地。
hibernate 中是否有针对此类用例的内置功能,或者是否有更好的方法来处理此问题?
编辑: 我的思考过程中遵循的一件事是:目标数据库表上的名称列将有一个索引设置。我可以使用 hibernate 以某种方式将此索引映射到 Destination 类吗?
最佳答案
您可以通过连接字符串来构建查询。一个更优雅的解决方案是使用 Hibernate Criteria API .
您的查询将类似于:
List result = session.createCriteria(Destination.class)
.add(Restrictions.like("name", "%" + name)
.list();
关于java - 如何在 hibernate 映射中添加另一个搜索参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043639/