休眠条件:如何结合LEFT_OUTER_JOIN和RIGHT_OUTER_JOIN执行FULL_JOIN

时间:2019-02-26 06:31:23

标签: hibernate hibernate-criteria

我想通过合并LEFT_OUTER_JOIN和RIGHT_OUTER_JOIN来执行FULL_JOIN。我可以将FULL_JOIN用于MSSQL,但不能用于MySQL,因为MySQL不支持FULL_JOIN。因此,要在MySQL中执行FULL_JOIN,我必须结合使用LEFT_OUTER_JOIN和RIGHT_OUTER_JOIN。

我有这样的东西

Criteria criteria = session.createCriteria(User.class,
            "user");
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

Criteria userCriteria = criteria.createCriteria("user");
userCriteria .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

List user1 = userCriteria.createAlias("userList",
                        "user1", JoinType.LEFT_OUTER_JOIN)
                        .list();

List user2 = userCriteria.createAlias("userList",
                        "user2", JoinType.RIGHT_OUTER_JOIN)
                        .list();

user1.addAll(user2);

但这给了我错误

  

捕获到类org.hibernate.QueryException的未知异常-重复的关联路径:userList

如何使用相同的别名将两个JOIN合并为一个?

P.S:我绝对是Hibernate Criteria Query的初学者,任何帮助或参考都将不胜感激

0 个答案:

没有答案