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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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();
    }