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 я все:)

Другие вопросы по тегам