Bonjour
Un problème qui pourrait ête simple mais étant débutant, je rame !
quel mapping pour une table de ce style ?

idA foreign-key de table A de type int peut être null
idB foreign-key de table B de type int peut être null
idC foreign-key de table C de type int


pas d'autres propriétés dans la table, 1 seul discrimant possible = (idA, idB, idC)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<hibernate-mapping>
	 <class name="Approver" table="APPROVER">
 
	<composite-id>
		<key-many-to-one name="businessArea" class="BusinessArea" column="AP_BA_ID"  lazy="false"></key-many-to-one>
		<key-many-to-one name="docType" class="DocType" column="AP_DT_ID" lazy="false"></key-many-to-one>
		<key-many-to-one name="approver" class="AlternateApprover" column="AP_ALTERNATEAPPROVER_ID" lazy="false"></key-many-to-one>		
	</composite-id>
 
	</class>
</hibernate-mapping>
ma classe Approver.java (Getter et setter pour chaque propriété)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class Approver implements Serializable {
 
	private BusinessArea businessArea;
	private DocType docType;
	private AlternateApprover approver;
 
}
je lis l'objet de cette facon en passant un objet app de type Approver en testant la nullité de la zone et en adaptant le code ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
if (app.getDocType() == null ) {
	Criteria criteria = getSession().createCriteria(Approver.class).add(
			Restrictions.eq("businessArea", app.getBusinessArea())).add(
			Restrictions.isNull("docType"));	
	Approver result = (Approver) criteria.uniqueResult();
 
}

j'ai essayé avec des id (de type java.lang.Long) plutôt qu'avec des objets (dans la classe java, mapping...) mais rien n'y fait :A partir du moment ou j'accède à une ligne avec une clé à null, je ne récupère rien dans result. En traçant la requête, elle est correcte, et en la testant dans un editeur SQL,elle retourne bien la ligne voulue.

Une idée ? Merci d'avance pour tout aide