2015-05-07 23 views
0

我正在将真正旧的应用程序从toplink迁移到Hibernate。 的,我有如下因素代码:从toplink/eclipselink等外连接迁移到Hibenate标准

ExpressionBuilder expHVLMAVI ... 

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

任何想法如何将其迁移到Hibenates标准API?我不知道在这一行发生了什么(任何解释将不胜感激)

回答

1

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

在JPQL,这将是equavlent到类似:

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

则是由你与bereichsCode声明做些什么。

+0

谢谢,在JPQL中它看起来比eclipselink API更可读 – serg

0

据克里斯的JPQL,我得到了这样的事情:

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

但我绝对不知道,如果有人可以检查如果我错了,以及如何纠正它,请帮助。