我有一个医生实体。每位医生都有一份HealthInsurance列表,这是另一个实体。
我的目标是建立一个基于用户选择的HealthInsurance的搜索系统。我必须让所有在用户健康保险清单中包含至少1个HealthInsurance的医生。像这样:
Criteria criteria = session.createCriteria(Doctor.class);
criteria.add(Restrictions.in("healthInsurances", userHealthInsurances));
return criteria.list();
但是这段代码抛出了以下异常:java.sql.SQLException:没有为参数1指定值。
使用Criteria有没有办法做到这一点?
答案 0 :(得分:5)
Criteria criteria = session.createCriteria(Doctor.class);
criteria.createCriteria("healthInsurances").add(Restrictions.in("id", userSelectedIds));
return criteria.list();
您可以通过createAlias
获得相同的功能。有关更多示例,请查看this。