2010-11-22 7 views
1

J'utilise des critères pour obtenir une liste de notifications contenant des utilisateurs actifs. Le problème est que je reçois l'erreur suivante:hibernate: utilisation de critères pour accéder aux objets dans les objets

org.hibernate.QueryException: could not resolve property: user.active of: com.company.Notification 

Autre vérifie alors que l'utilisateur est actif que je dois vérifier que la notification est d'un type que je veux. Voici mon code:

session.createCriteria("com.company.Notification") 
    .add(Restrictions.or(Restrictions.eq("type", "email"), 
    .add(Restrictions.eq("user.active", true)).list(); 

La notification a un champ User user qui à son tour a un champ Boolean active

je regarde cette page: https://forum.hibernate.org/viewtopic.php?t=948576&highlight=subproperty

mais je ne suis toujours pas groking comment créer un critères qui accèdent à quelque chose dans l'objet parent et dans l'objet enfant.

Répondre

6

essayez ceci:

session.createCriteria("com.company.Notification") 
    .add(Restrictions.or(Restrictions.eq("type", "email") 
    .createCriteria("user") // this creates the join on the user table... 
    .add(Restrictions.eq("active", true)).list(); 

espoir qui a aidé ...

Questions connexes