从toplink / eclipselink equalOuterJoin迁移到Hibenate Criteria

时间:2015-05-07 15:45:39

标签: java hibernate eclipselink hibernate-criteria toplink

我正在将真正的旧应用程序从toplink迁移到Hibernate。 我有以下代码:

ExpressionBuilder expHVLMAVI  ...

expHVLMAVI.anyOfAllowingNone(perf2CollectionString).get("bereichsCode")
.equalOuterJoin(bereichsCode)

有关如何将其迁移到Hibenates Criteria API的任何想法?我不知道这一行会发生什么(任何解释都将不胜感激)

2 个答案:

答案 0 :(得分:1)

expHVLMAVI可能代表模型中的一个类/实体,因此anyOfAllowingNone是perf2CollectionString关系的外连接,然后是bereichsCode关系的连接。这只是要在查询的其余部分中使用的表达式的一部分。

在JPQL中,这类似于以下内容:

"Select... from ExpHVLMAVI expHVLMAVI left outer join expHVLMAVI.perf2CollectionString as perf2CollectionString join perf2CollectionString.bereichsCode as bereichsCode"

您对bereichsCode声明所做的事情由您决定。

答案 1 :(得分:0)

根据Chris的JPQL,我有这样的事情:

criteria.createAlias("fabrication." + perf2CollectionString, "perf", JoinType.LEFT_OUTER_JOIN);
criteria.add(Restrictions.eq("perf.bereichsCode", bereichsCode));

但我绝对不确定,如果有人能检查我是否错了,以及如何纠正,请帮忙。