Hibernate限制 - 如何查询多个值?

时间:2014-09-17 21:52:45

标签: java hibernate hibernate-criteria restrictions

我是Hibernate Restrictions的新手,需要一些帮助:

我有一个场景,我需要找到“标识符”为“HB001”或“HB002”,“HB003”和“HB004”的所有记录。也就是说,它应返回4行,每行的“标识符”为“HB00 *”。

//here is the code
Criteria criteria = hibernateSession.createCriteria(ENTITY_CLASS); 

List<String> ids = getIds(); //ids contains "HB001", "HB002", "HB003", "HB004" and I am sure this step has no issue. 
criteria.add(Restrictions.eq("identifier", ids));
...

看起来criteria.add(Restrictions.eq("identifier", ids))不正确,查询返回null。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您需要使用criteria.add(Restrictions.in("identifier", ids));ids应该是ArrayList之类的集合。

注意到您的ids已经是一个列表,您可以直接使用Restrictions.in