Rechercher : dans
Par :

Requete SQL Hibernate

Dernière réponse le 16 jan 2009 à 19:18:28 g25452, le 16 jan 2009 à 17:29:02 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « Requete SQL Hibernate » dans :
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

 Marco la baraque, le 16 jan 2009 à 19:18:28

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, rtfm and jfgi
Simple "merci" makes helping people happy :)

Répondre à Marco la baraque