2008-11-26 6 views
0

Je voudrais utiliser des critères pour ma requête SQL. J'ai 3 tables "home", "person" et une troisième table "liveIn" pour la correspondance entre la maison et la personne.Hibernate transforme SQL en critères

Ma requête SQL est « select home.id à la maison, personne, liveIn où home.country = 'Japon' et person.id = '15' et liveIn.Homeid = home.id et liveIn.PersonId = person.id "

Un peu d'aide?

+0

et votre problème avec ce code serait? – HLGEM

Répondre

1

En supposant que vous avez les tables cartographiés comme des entités Home, personne et LiveIn alors quelque chose comme cela pourrait fonctionner:

  session.createCriteria(Home.class) 
       .add(Restrictions.eq("country", "Japan")) 
       .createAlias("person", "p") 
       .add(Restrictions.eq("p.id", "15")) 
       .list(); 
1

Si vous avez la référence d'objet de l'objet personne, vous pouvez l'utiliser dans vos critères requête au lieu d'avoir à chercher l'identifiant de la personne.

Par exemple:

public List<Home> getHomesForPerson(Person thePerson){ 

    List<Home> homes = session.createCriteria(Home.class) 
          .add(Restrictions.eq("country", "Japan") 
          .add(Restrictions.eq("person", thePerson) 
          .list(); 
    return homes; 
} 
Questions connexes