休眠:如何指定左边条件?

时间:2014-10-16 13:25:28

标签: java hibernate join conditional-statements criteria

我有两张桌子:

  • 表A" Prova"具有以下列:id,id_comitato,id_comitato_erog
  • 表B命名为" comitato"具有以下列:id_comitato,name

标准:

Criteria criteria = mySession.createCriteria(Prova.class, "p");
criteria.createCriteria("comitato", "c", CriteriaSpecification.LEFT_JOIN);

在SQL中翻译此查询是:

SELECT * FROM Prova p LEFT JOIN comitato c ON p.id_comitato=c.id_comitato

但我想要的是以下内容:

SELECT * FROM Prova p LEFT JOIN comitato c ON p.id_comitato_erog=c.id_comitato

如何指定此连接条件?

非常感谢, 祝你有个美好的一天!

1 个答案:

答案 0 :(得分:1)

你有没有试过这样的东西 - > Yet another post on Stackoverflow 。基本上你必须做类似以下的事情:

Criteria criteria = 
mySession.createCriteria(Prova.class, "p")
       .createAlias("comitato", 
                    "c", 
                    Criteria.LEFT_JOIN,
                    Restrictions.eqProperty("p.id_comitato_erog", 
                                            "e.id_comitato"));