Requete SQL Hibernate

Requete SQL Hibernate - Java - Programmation

Marsh Posté le 16-01-2009 à 17:23:54    

Bonjour,  
 
 
Je code en java, et j'utilise Hibernate,  
lorsque je fais dans ma requete une selection des types de prestations par employe,  
 
il met en rouge "employe" apres le where tp.employe
et pourtant dans "hibernate.hbm.xml" j'ai bien mis la reference vers employe.
 
 
 
Ma requete :
 
<code>
 
 
 String query = "select tp from TypePrestation tp " +
                "where tp.employe.id = :idEmploye ";
 
</code>
 
 
 
La definition de ma classe dans hibernate.hbm.xml :
 
 
TypePrestation :
 
<code>
 
 <class name="TypePrestation" table="t_typeprestation">
        <id name="id" column="id" type="int">
            <generator class="sequence">
                <param name="sequence">id_sequence</param>
            </generator>
        </id>
        <property name="label" column="label" type="string"/>
 
        <many-to-one name="utilisateur" column="idutilisateur" class="Employe"/>
    </class>
 
</code>
 
 
 
Personne : (Employe herite de Personne)
 
<code>
 
<class name="Personne" table="t_personne">
        <id name="id" column="Id" type="int">
            <generator class="sequence">
                <param name="sequence">id_sequence</param>
            </generator>
        </id>
        <property name="nom" column="nom" type="string"/>
        <property name="prenom" column="prenom" type="string"/>
 
        <many-to-one name="utilisateur" column="idutilisateur" class="Employe"/>
 
 
        <joined-subclass name="Employe" table="t_employe">
            <key column="id"/>
            <property name="matricule" column="matricule"/>
            <set name="releves">
                <key column="idemploye"/>
                <one-to-many class="Releve"/>
            </set>
        </joined-subclass>
    </class>
 
</code>
 
 
Est-ce que quelqu'un pourrait m'aider,  
 
Merci

Reply

Marsh Posté le 16-01-2009 à 17:23:54   

Reply

Marsh Posté le 22-01-2009 à 10:36:18    

wow, '=' et like, c'est pas trop la même chose, hein, même en HQL.

 

Avece l'API Criteria, tu peux pas requéter sur l'id, faut passer par un session.load() ou session.get(). Ici, tu pourrais essayer avec ce code qui devrait marcher :

Code :
  1. //en HQL :
  2. session.createQuery("from TypePrestation tp where tp.utilisateur = :employe" ).setObject('employe', employe).list();
  3. //en Criteria
  4. session.createCriteria(TypePrestation.class).addRestriction(Restrictions.eq("utilisateur", employe).list()
 

ou un truc du style, j'ai pas la doc sous les yeux là.

 

P.S.:tu mets tp.employe dans ta requête alors que ton mapping défini utilisateur dans TypePrestation, d'ailleurs, c'est surtout ça ton problème. Mais j'espère que depuis le 16 t'avais trouvé.


Message édité par brisssou le 22-01-2009 à 10:36:54

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed