Exécuter un Select * sur une table contenant un discriminant
Bonjour,
voila j'ai suivi ce lien pour faire de l'heritage sur mes fichiers hbm. Dans la classe de base, j'ai une un discriminant distinguant les types. J'ai une classe qui permet de faire des requetes dessus...dont findAll, le seul hic, c'est que je souhaite retourner juste les objets ayant le discriminant a PERMIT. Comment faire en utilisant cette methode:
Code:
1 2 3 4 5 6 7
|
public static java.util.List<XacmlPolicy> findAll() {
org.hibernate.Session session = mpower_hibernate.HibernateUtil.currentSession();
org.hibernate.Query query = session.createSQLQuery( "from XacmlPolicy");
return (java.util.List<XacmlPolicy>) query.list();
} |
je voudrai rajouter une condition, un WHERE, qui dit aue je veux juste les objets avec discriminant PERMIT.
Voici mon hbm:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<hibernate-mapping>
<class name="mpower_hibernate.XacmlPolicy" table="XacmlPolicies" discriminator-value="PERMIT">
<id column="POLICY_ID" name="id">
<generator class="increment"/>
</id>
<discriminator column="POLICY_TYPE" type="string"/>
<property column="POLICY_NAME" name="name"/>
<property column="POLICY" name="policy" type="blob"/>
<subclass name="mpower_hibernate.XacmlPendingPolicy" discriminator-value="PENDING">
<join table="XacmlPendingPolicies">
<key column="POLICY_ID"/>
<many-to-one class="mpower_hibernate.User" column="USER_ID" name="user"/>
</join>
</subclass>
</class>
</hibernate-mapping> |
Merci de votre soutien,
Babas007
Voici le code reponse:
Code:
1 2 3 4 5 6 7 8 9
|
public static java.util.List<XacmlPolicy> findAvailables() {
org.hibernate.Session session = mpower_hibernate.HibernateUtil.currentSession();
org.hibernate.Query query = session.createQuery(
"from XacmlPolicy po "
+ "WHERE po.class = XacmlPolicy");
return (java.util.List<XacmlPolicy>) query.list();
} |