normalement le passage par HQL necessite que tu ais décrit le mapping entre tes objets métier JAVA et ta base de donnée.
Peux tu nous les présenter ?
normalement pour deux tables ayant une relation interne tu devrait avoir un truc de ce genre
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.projet.Groupe" table="groupe">
<cache usage="read-write"/>
<id name="id" column="id" type="long">
<generator class="sequence">
<param name="sequence">seq_groupe</param>
</generator>
</id>
<property name="code" column="code" type="string"/>
<property name="libelle" column="libelle" type="string"/>
<set name="membre" outer-join="false" inverse="true" lazy="true">
<cache usage="read-write"/>
<key column="idGroupe" />
<one-to-many class="com.projet.User" />
</set>
</class>
</hibernate-mapping>
et
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.projet.User" table="user">
<cache usage="read-write"/>
<id name="id" column="id" type="long">
<generator class="sequence">
<param name="sequence">seq_user</param>
</generator>
</id>
<property name="pseudo" column="pseudo" type="string"/>
<property name="mail" column="mail" type="string"/>
<many-to-one outer-join="false" name="groupe" column="idGroupe" class="com.projet.Groupe" cascade="none" lazy="false"/>
</class>
</hibernate-mapping>
Ainsi que tes objets Java correspondant : Groupe et User (user faisant partis d'un seul groupe, je pense que tu auras compris)
Ta requête HQL est ni plus ni moins qu'une requete SQL orientée OBJET.
pour avoir tous tes élements tu fais
reqHQL = "from user u where u.pseudo like 'test%' and u.groupe.code = 'ADMIN'"
Après exécution tu récupèreras tous les objets User ayant un pseudo commençant par "test" et étant dans le groupe ayant le code ADMIN.
En espérant t'avoir donné assez de piste pour la suite ;) n'hésite pas à revenir pour + d'info.