2009-12-08 4 views
0

Est-il possible d'ajouter une restriction implicite à l'entité dans HQL? Par exemple, lorsque nous interrogeons la liste avec hql "from Client", nous devons sélectionner seulement les clients qui ont un identifiant système particulier. L'ID système lui-même dépend de la session de l'utilisateur. Nous avons donc besoin de cette requête pour être réellement converti en « du client où systemId =: systemId » bien que nous ne précise pas dans la requête d'origineRestrictions d'entité implicite Hibernate

+0

nous Pourquoi ne pas définir la requête avec la clause WHERE? – Bozho

+0

Cette solution est trop difficile avec notre architecture, car nous avons beaucoup de HQL dispersés dans l'application. Utiliser le filtrage promet d'être moins douloureux. – LazySmokier

Répondre

0

Hibernate Filter est ce que vous êtes après ...

En afin de vous assurer que vous êtes fourni avec actuellement efficaces enregistrements, activer le filtre sur la session avant de récupérer les données employé :

Session session = ...; 
session.enableFilter("effectiveDate").setParameter("asOfDate", new Date()); 
List results = session.createQuery("from Employee as e where e.salary > :targetSalary") 
     .setLong("targetSalary", new Long(1000000)) 
     .list(); 
+0

Merci! Je pense que c'est ce que je cherchais – LazySmokier