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.  [ 2 posts ] 
Author Message
 Post subject: Comment mapper un champ géré par un séquence.
PostPosted: Wed Dec 06, 2006 12:02 pm 
Newbie

Joined: Wed Dec 06, 2006 11:44 am
Posts: 2
Hibernate version: 3.1.3

DB : Oracle 10g

Bonjour,

Nous avons un champ code dans un table dont la valeur est pilotée par une sequence oracle.

Nous voulons qu'à la création d'une ligne ce champ soit directement renseigné par Hibernate ( de la même façon que l'Id est renseigné).

Pour celà nous avons tenté d'utiliser le tag formula de la façon suivante :

<property name="cmpCode" generated="insert" type="java.lang.Long" formula="Select seq_composition_code.nextVal from dual"/>

L'erreur remontée est :
cannot insert NULL into ("CAMIT"."CI_COMPOSITION"."CMP_CODE")

Quelle pourrait être l'erreur commise dans le mapping?

Après avoir cherché et consulté pas mal de docs en ligne je ne vois pas pourquoi un tel mapping ne fait pas ce que l'on cherche à faire.

Pour moi lorque l'on fait cette manip hibernate est sencé alimenter la propriété code avec le résultat de la requête contenue dans le tag formula.

Cordialement.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 15, 2006 7:49 pm 
Expert
Expert

Joined: Tue Dec 28, 2004 7:02 am
Posts: 573
Location: Toulouse, France
A priori, déjà, le generated="insert" n'est pas bon. Il indique à Hibernate qu'il devrait rafraîchir l'objet après une insertion. Ce serait le cas si tu configurais la base pour effectuer cette opération par un trigger à l'insertion par exemple. Ici, ça n'a rien à voir : Hibernate va faire le select indiqué dans ton formula et positionner lui-même la valeur, donc pas de generated à utiliser. cf. http://www.hibernate.org/hib_docs/v3/re ... -generated

Mais bon, je ne suis pas sûr que cela résolve ton problème complètement. Tu as vérifié que la taille de ta sequence allait dans un Long ?

_________________
Baptiste
PS : please don't forget to give credits below if you found this answer useful :)


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