java - 组织.hibernate.QueryException : duplicate association path: metaData

标签 java hibernate criteria andromda

我正在做类似的事情:

        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:重复关联路径:在 metaData 类上,但我认为我在这里不需要任何别名,因为我使用的是相同的标准,你能帮帮我吗...?

谢谢!!!

最佳答案

感谢 Pritesh Shah,我得到了答案,这是解决方案

    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...

我使用了我在第一个镜头中创建的别名 :)

所有 Cya :)

关于java - 组织.hibernate.QueryException : duplicate association path: metaData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17345017/

相关文章:

java - 将 Hibernate Query.list() 转换为 List<Type> 的 "proper"方法是什么?

java - 模块和微服务之间的区别

java - 如何创建支持通用 ID(包括自动生成的 ID)的通用实体模型类?

spring - Hibernate 不会在保存后保留数据

agile - 在 scrum 中,是否可以在 sprint 期间更改验收标准?

java - 如何获取 Google 返回的 JSON 对象中的持续时间和距离?

java - JSP 只能导入一个类型

eclipse - org.hibernate.InvalidMappingException : Could not parse mapping document from resource *. hbm.xml

grails - 当hasMany没有任何元素时,选择Grails条件

nhibernate - 如何在 Expression.Or 中设置 2 个以上的表达式