2014-10-16 3 views
0

Я две таблицы:Hibernate: как я могу указать условие слева?

  • Таблица Именованная "Prova" имеет следующие столбцы: идентификатор, id_comitato, id_comitato_erog
  • В таблице B под названием "Comitato" имеет следующие столбцы: id_comitato, имя

Критерии:

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

Вы пробовали что-то вроде этого ->Yet another post on Stackoverflow .Basically вы должны сделать что-то похожее на следующее:

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

@yardrimz отблагодарить у очень much..I've принял другое решение из ссылку, и это работает! – smanulla

+0

@ yardrimz О нет, это не работает :(Таким образом, запрос: SELECT * FROM Prova p LEFT JOIN comitato c ON p.id_comitato = c.id_comitato где p.id_comitato_erog = c.id_comitato – smanulla

+0

OK! I ' Я пропустил @JoinColumn с id_comitato_erog в классе java .. теперь работает! спасибо! – smanulla

Смежные вопросы