org.hibernate.QueryException: дубликат пути ассоциации: метаданные
Я делаю что-то вроде:
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: повторяющийся путь ассоциации: в метаданных класс, но я не думаю, что мне нужны какие-либо псевдонимы здесь, потому что я использую те же критерии, вы можете мне помочь, пожалуйста...?
Спасибо!!!
1 ответ
Решение
Я получил ответ, спасибо Притеш Шах, вот решение
Criteria criteria = getSession().createCriteria(Employee.class, "employee").createCriteria("metaData", "mData").createCriteria("currentRunningContract", "currentContract");
if (key.equals("directorate")) {
criteria.createCriteria("currentContract."+key).add(Restrictions.in("id", (Long[])parameters.get(oKey)));
}Blahblah etc...
Я использовал псевдонимы, которые я создал в одном кадре в первом одиноком:)
C я все:)