I have a question when using the update(obj, serializable_id_class)
I have the composite id. I wonder if should I create serializable_id_class before I 
could update? 
Let say
<composite-id>
 <key-property name="subId"
         column="sequence_num"
         type="int"/>
  <key-property name="txId"
         column="trxn_id"
         type="long"/>
</composite-id>

Create serializable class sound is sth like creating Class_PK of the BMP, right?

Cheers;
Jeff


--- "Gavin King" <[EMAIL PROTECTED]> wrote:
>saveOrUpdate() doesn't interact well with assigned identifiers, as you have
>observed.
>
>The solution is to use explicit save() or explicit update(). ie. the
>application must decide wether the object is to be saved or updated, because
>the identifier property can't give us any useful information.
>
>----- Original Message -----
>From: "Jeff Chong" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Friday, November 29, 2002 1:24 PM
>Subject: unsaved-value for assigned identifier
>
>
>> I have scenario here:
>>
>> I created 2 entity parent and child with one-to-many
>> relationship
>> The parent Id is generated from sequence table.
>> But the children id is assigned.
>>
>> In the parent.xml, I have this
>> <id .... unsaved-value="null">
>> </id>
>> <set ....>
>>       <one-to-many ..... cascade="none" readonly="true">
>> </set>
>>
>> In the child.xml, I have this
>> <composite-id....unsaved-value="none">
>> <composite-id>
>>
>> The setting I did this way having the reasons to
>> 1. retrieve the parent at same time with children.
>> 2. save the parent property and save the children EXPLICITLY.
>>
>> But, when I return the parent and at same time getChildren
>> as Set.
>> I need to update parent and one of the child only.
>> So, I iterate the set collection and find the child.
>> Then, I change the new value for one property and want to
>> save using
>> "save previous loaded object --> session.saveOrUpdate(child)
>> " to store the child, I hit the errors saying: " Insert the
>> duplicate key is not allow" which is error from database.
>>
>> >>Taken from the Hibernate FAQ:
>>
>> >> "I'm seeing foreign key constraint violations when using
>> assigned >>identifiers Set unsaved-value="any" (the
>> default). With other >>unsaved-value settings, Hibernate
>> uses the value of the identifier >>property to judge if an
>> instance already exists in the database. This >>conflicts
>> with the use of assigned identifiers. "
>>
>>
>> I suppose this is the problem I hit.  Is there any
>> workaround to tell the hibernate to update instead of insert
>> again?
>>
>> My current workaround is to retrieve the child explicitly
>> and change the value at same time and only then the
>> session.flush().....
>>
>> Cheers;
>> Jeff
>>
>>
>>
>>
>>
>>
>>
>>

_____________________________________________________________
Want a new web-based email account ? ---> http://www.firstlinux.net

_____________________________________________________________
Select your own custom email address for FREE! Get [EMAIL PROTECTED] w/No Ads, 6MB, 
POP & more! http://www.everyone.net/selectmail?campaign=tag


-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T 
handheld. Power & Color in a compact size! 
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to