休眠:使用条件按列表过滤

时间:2014-01-07 22:38:07

标签: java hibernate criteria

我有一个医生实体。每位医生都有一份HealthInsurance列表,这是另一个实体。

我的目标是建立一个基于用户选择的HealthInsurance的搜索系统。我必须让所有在用户健康保险清单中包含至少1个HealthInsurance的医生。像这样:

Criteria criteria = session.createCriteria(Doctor.class);
criteria.add(Restrictions.in("healthInsurances", userHealthInsurances));
return criteria.list();

但是这段代码抛出了以下异常:java.sql.SQLException:没有为参数1指定值。

使用Criteria有没有办法做到这一点?

1 个答案:

答案 0 :(得分:5)

Criteria criteria = session.createCriteria(Doctor.class);
criteria.createCriteria("healthInsurances").add(Restrictions.in("id", userSelectedIds));
return criteria.list();

您可以通过createAlias获得相同的功能。有关更多示例,请查看this