-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: jointure sur clé partielle
PostPosted: Tue Feb 14, 2006 1:38 pm 
Newbie

Joined: Mon Jan 16, 2006 10:49 am
Posts: 12
Bonjour

J’ai besoin d’aide pour écrire le mapping d’une jointure 1-1 entre tables à partir de n’importe quel champ de la table parent. Si je n’ai pas de correspondance entre les clés (primaire et foreign) ça ne veut pas marché alors que c’est pour moi un cas fréquent. Hibernate valide la jointure que si les clés sont totalement mappées, ce que je ne peux pas forcément faire. J’ai beau tourné les join et les many-to-one dans tous les sens ça ne passe pas.

Voila un exemple au plus simple de mon problème.


Create table interElement
(
CODE varchar2(10),
PROP1 varchar2(50),
IDLIB number(38),
constraint PK_interElement primary key (CODE)
)

Create table libNat
(
IDLIB number(38)
ISOLANG varchar2(10)
LIB varchar2(255)
constraint PK_libNat primary key (IDLIB, ISOLANG)
)

Je veux faire l’équivalent d’une jointure one-to-one entre mes 2 tables sur le champ IDLIB en passant un parametre pour ISOLANG , bref l’equivalant de
Select * from interElement a, libNat b where a.IDLIB = b.IDLIB and b.ISOLANG=”FR”;

Au final je veux récupérer l’objet suivant

Public class Elem {
protected String code
protected Stirng prop1
protected Lib libel
}
Ou Lib est l’objet
Public call Lib {
protected long id ;
protected String isocode ;
protected String texteL ;
}

Comment faut il que je mappe mon objet Elem ? La seule solution qui fonctionne est avec une collection mais comme j’ai toujours un critère sur isocode qui rend la relation 1-1 ma collection ne comporte qu’un seul élément, ce qui n’a donc pas d’intérêt, je voudrais donc m’en passer.

QuiCquiCCommentFaire?

merci d'avance


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 16, 2006 9:22 am 
Regular
Regular

Joined: Tue May 03, 2005 8:19 am
Posts: 53
Location: Paris
Tu dois pouvoir utiliser
Code:
<one-to-one name="libel" class="Lib">
   <formula>idLib</formula>
   <formula>'FR'</formula>
</one-to-one>


voir les tests :
org.hibernate.test.onetooneformula
org.hibernate.test.typedonetoone


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 21, 2006 3:59 am 
Newbie

Joined: Mon Jan 16, 2006 10:49 am
Posts: 12
bonjour

merci pour ta réponse, j'ai fait quelque essais mais cela ne passe pas la validation du fichier de mapping. Je vais regarder les tests hibernate.
Mais je me pose magré tout la question de savoir comment passer 'FR' en parametre dans le formula. Il me semblait qu'hibernate ignorait le contenu en l'appliquant tel que, je me trompe ?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 21, 2006 5:58 am 
Regular
Regular

Joined: Tue May 03, 2005 8:19 am
Posts: 53
Location: Paris
Effectivement 'FR' est ici en dur!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.