Requete SQL Hibernate

Fermé
g25452 Messages postés 66 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 1 juin 2010 - 16 janv. 2009 à 17:29
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 16 janv. 2009 à 19:18
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 :



 String query = "select tp from TypePrestation tp " +
                "where tp.employe.id = :idEmploye ";





La definition de ma classe dans hibernate.hbm.xml :


TypePrestation :


 <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>





Personne : (Employe herite de Personne)


<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>




Est-ce que quelqu'un pourrait m'aider,

Merci

1 réponse

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
16 janv. 2009 à 19:18
Bonsoir,
Ta requête là, c'est un peu un mélange HQL/SQL là...

Si tu utilises la notation pointée (HQL), il ne faut pas utiliser le nom des champs de tes tables, mais le nom des attributs de tes java beans (accessible grâce à des getters).

Ici il faut :
 String query = "select tp from TypePrestation tp " +
                "where tp.utilisateur.id = :idEmploye ";


Cordialement,
0