我是hibernate的新手,还在学习基础知识。如果有人能指出我正确的方向,我会很感激。
我有一个班级:
目标
我可以根据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类吗?
答案 0 :(得分:1)
您可以通过连接字符串来构建查询。更优雅的解决方案是使用Hibernate Criteria API。
您的查询将类似于:
List result = session.createCriteria(Destination.class)
.add(Restrictions.like("name", "%" + name)
.list();