我正在做类似的事情:
Criteria criteria = getSession().createCriteria(Employee.class);
Criteria metaDataCriteria = criteria.createCriteria("metaData");
Criteria contractCriteria = metaDataCriteria.createCriteria("currentRunningContract");
if (key.equals("directorate")) {
contractCriteria.createCriteria(key).add(Restrictions.in("id", (Long[])parameters.get(oKey)));
}
if (key.equals("grade")) {
contractCriteria.createCriteria(key).add(Restrictions.in("id", (Long[])parameters.get(oKey)));
}
if (key.equals("gradeLevel")) {
contractCriteria.createCriteria(key).add(Restrictions.in("id", (Long[])parameters.get(oKey)));
}
我在这里显然要做的是向contractCriteria添加子标准,具体取决于是否在关联数组中找到我通过函数的键,但我得到异常:org.hibernate.QueryException:重复关联路径:在元数据上class ,但我认为我在这里不需要任何别名,因为我使用的是相同的标准,你能帮我吗...?
谢谢!!!