任何领域,我有以下对象:其中在休眠
Agency
Name
Description
我想返回休眠对象如果文本“大”在任何领域的appers。
有没有比SQL查询更好的方法: select distinct id from agency where name like 'big' or description like 'big'
在Hibernate中?
编辑:
我喜欢写一个解决方案,为每类通用的 - 即Hibernate可以在任何领域的检查,而无需指定他们
任何领域,我有以下对象:其中在休眠
Agency
Name
Description
我想返回休眠对象如果文本“大”在任何领域的appers。
有没有比SQL查询更好的方法: select distinct id from agency where name like 'big' or description like 'big'
在Hibernate中?
编辑:
我喜欢写一个解决方案,为每类通用的 - 即Hibernate可以在任何领域的检查,而无需指定他们
Criteria criteria = sess.createCriteria(Agency.class)
for (Field f : Agency.class.getDeclaredFields())
{
if(f.isAccessible()) {
criteria.add(Restrictions.like(f.getName(), "%big%"));
}
}
List agencies = criteria.list();
如果您在注解类,那么您可以读取名称。
为此,该字段的名称必须与列匹配。但是你可以利用它们。
List agencies = sess.createCriteria(Agency.class)
.add(Restrictions.like("Name", "%big%"))
.add(Restrictions.like("Description", "%big%"))
.list();
或者你可能需要或取决于你想要什么:
List agencies = sess.createCriteria(Agency.class)
.add(Restrictions.or(
Restrictions..like("Name", "%big%"),
Restrictions.like("Description", "%big%")
))
.list();