-->
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.  [ 6 posts ] 
Author Message
 Post subject: id,composite id et natural id, comment faire?
PostPosted: Tue Jul 12, 2005 9:19 am 
Newbie

Joined: Tue Jul 12, 2005 9:06 am
Posts: 7
Salut,
Meme apres avoir lu la doc, j'ai du mal a voir comment faire...
Imaginons, j'ai un objet

Person
--- id
--- Name
--- SurName

Je voudrais avoir un id auto increment et que le couple name-surname soit unique

Si j'utilise un composite id avec name et surname, je risque d'avoir des problemes de performance car j'ai besoin de faire des jointures avec de tres grosses tables. Je prefererais faire une jointure sur un int au lieu d'un couple de string.

Si je n'ai que l'id auto increment, ce sera a mon code de verifier si le couple Name-Surname existe deja car je ne pourrais pas utiliser saveOrUpdate. Et hibernate ne me crera pas d'index sur le couple name-surname

De plus j'ai besoin que SurName soit du type TEXT (ou Clob). Je vois mal hibernate et la base faire des jointures sur un tel type

J'ai essayé de mettre un natural-id mais je n'ai pas reussit a le faire marcher sur hibernate 3 :-(

Quel est la meilleur facon de faire ?

Merci beaucoup


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 15, 2005 2:31 pm 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
Tu as essayé cela?

Code:
<id name="id><generator .../></id>
<natural-id mutable="false">
  <property name="name" type=.../>
  <property name="SurName" type=..."/>
</natural-id>

_________________
Emmanuel


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 18, 2005 4:33 am 
Newbie

Joined: Tue Jul 12, 2005 9:06 am
Posts: 7
[quote="emmanuel"]Tu as essayé cela?

[code]<id name="id><generator .../></id>
<natural-id mutable="false">
<property name="name" type=.../>
<property name="SurName" type=..."/>
</natural-id>[/code][/quote]

J'ai essayé :
[code]
<class table="peoples" name="com.....People">
<id name="id" type="int" column="id">
<generator class="increment"/>
</id>
<natural-id mutable="false">
<property name="name" length="250" column="name" type="java.lang.String"/>
<property name="surname" length="250" column="surname" type="java.lang.String" />
</natural-id>
</class>
[/code]

Mais ca me donne l'exception :
[code]org.hibernate.QueryException: could not resolve property: name of: com.....People[/code]

J'ai la meme erreur lorsque j'essaye d'utiliser le tag properties
[code]
<properties name="toto" unique="true" update="false">
<property name="name" .../>
<property name="surname" />
</properties>[/code]

Mais avec le tag properties, la table est créée correctement alors qu'avec natural-id, il ne crée que la colonne id ?!?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jul 18, 2005 12:32 pm 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
Regarde les logs, il doit y avoir quelque chose d'autre. Cela fonctionne normalement.

_________________
Emmanuel


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 19, 2005 4:17 am 
Newbie

Joined: Tue Jul 12, 2005 9:06 am
Posts: 7
J'ai trouvé pourquoi ca marchait pas avec <properties>


<properties name="toto" unique="true" update="false">
<property name="name" .../>
<property name="surname" />
</properties>

L'exception arrivait lorsque je faisait


org.hibernate.Criteria criteria = getSession().createCriteria(People.class);
criteria.add(org.hibernate.criterion.Expression.eq( "name", name));


En fait il fallait utiliser

criteria.add(org.hibernate.criterion.Expression.eq("toto.name", name));

Mais c'est pas marqué dans la doc.
N'y a t il pas une documentation hibernate plus approffondie, avec plus de code java, car l'officielle ne montre quasiment que la configuration xml ?

Encore merci


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 19, 2005 2:00 pm 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
J'imagine que c'est à préciser dans la doc.

PS: la doc fait déjà plus de 200 pages, mais en général la suite de tests unitaire fourmille d'exemples.

_________________
Emmanuel


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 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.