I tried changing:

        <composite-id name="id"
            class="com.comcast.cable.dmc.itd.cct.persistence.CCRChildId"
            unsaved-value="any">
            <key-property column="CCR_ID" length="22" name="ccrId"
type="long"/>
            <key-property column="RECORD_NUM" length="22" name="recordNum"
type="long"/>
        </composite-id>

to:


        <composite-id name="id"
            class="com.comcast.cable.dmc.itd.cct.persistence.CCRChildId"
            unsaved-value="none">
            <key-property column="CCR_ID" length="22" name="ccrId"
type="long"/>
            <key-property column="RECORD_NUM" length="22" name="recordNum"
type="long"/>
        </composite-id>

and it still doesn't work.  I added debugging to my equals method, and there
is 6 children and they all appear to be equal, but it still tried to do an
insert:

    [junit] equals: true
    [junit] equals: true
    [junit] equals: true
    [junit] equals: true
    [junit] equals: true
    [junit] equals: true
    [junit] Hibernate: insert into CMCF_MPS  ( ENCRYPT_TSODA, DECRYPT_TSODA,
SATELLITE, TRANSPONDER,
 EIA_CHANNEL, NETWORK_NAME, STATUS_ID, MSG_ID, CCR_ID, RECORD_NUM ) values (
?, ?, ?, ?, ?, ?, ?, ?,
 ?, ? )


I'll try downloading 1.2.2 and see if that helps.

Matt

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Monday, January 20, 2003 6:04 PM
> To: Raible, Matt
> Cc: '[EMAIL PROTECTED]'
> Subject: RE: [Hibernate] Saving Children with composite-id
> 
> 
> 
> I *think* that you would just have to set unsaved-value="none"
> for the composite-id children in order to convince Hibernate
> to do an update rather than an insert.
> 
> (You also need to make sure that you are assigning unique
> composite id values to all the children before flushing.)
> 
> "null" will not work, since the composite id property is never
> null (its not a generated id).
> 
> 
> > I tried changing the unsaved-value to "any", "null" and
> > "none" and none of them worked for me.
> 
> 
> 
>                                                               
>                                                               
>           
>                     "Raible, Matt"                            
>                                                               
>           
>                     <[EMAIL PROTECTED]>         
> To:     "'[EMAIL PROTECTED]'"             
>             
>                     Sent by:                                 
> <[EMAIL PROTECTED]>                       
>            
>                     [EMAIL PROTECTED]       
> cc:                                                           
>             
>                     eforge.net                              
> Subject:     RE: [Hibernate] Saving Children with 
> composite-id            
>                                                               
>                                                               
>           
>                                                               
>                                                               
>           
>                     21/01/03 11:40 AM                         
>                                                               
>           
>                                                               
>                                                               
>           
>                                                               
>                                                               
>           
> 
> 
> 
> 
> So I've found the offending SQL statement:
> 
>     [junit] Hibernate: insert into CMCF_MPS  ( ENCRYPT_TSODA,
> DECRYPT_TSODA,
> SATELLITE, TRANSPONDER,
>  EIA_CHANNEL, NETWORK_NAME, STATUS_ID, MSG_ID, CCR_ID, 
> RECORD_NUM ) values
> (
> ?, ?, ?, ?, ?, ?, ?, ?,
>  ?, ? )
> 
> How does hibernate determine if it should do an insert or an 
> update?  By
> the
> equals method in my CompositeId?
> 
> Thanks,
> 
> Matt
> 
> > -----Original Message-----
> > From: Raible, Matt
> > Sent: Monday, January 20, 2003 4:43 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: [Hibernate] Saving Children with composite-id
> >
> >
> > OK, I now have a pk property (+ getter/setter) in my child
> > object, and I removed the properties for ccrId and recordNum.
> >  My composite-id element now has a name="pk" attribute.  The
> > select still seems to work fine and I'm getting the expected
> > number of children.
> >
> > However, when I try to save, I get the ol' foreign key
> > violated exception:
> >
> >     [junit] java.sql.BatchUpdateException: ORA-00001: unique
> > constraint (CCTADMIN.CMCF_MPS_PK) viola
> > ted
> >
> > I tried changing the unsaved-value to "any", "null" and
> > "none" and none of them worked for me.
> >
> > Any ideas?  If this is *supposed* to work, then maybe there's
> > a 3rd primary key on the CMCF_MPS table I'm not aware of.
> >
> > Thanks,
> >
> > Matt
> >
> >
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, January 20, 2003 4:14 PM
> > > To: Raible, Matt
> > > Cc: '[EMAIL PROTECTED]';
> > > [EMAIL PROTECTED]
> > > Subject: Re: [Hibernate] Saving Children with composite-id
> > >
> > >
> > >
> > > Looks like you need to add a name attribute to the
> > > <composite-id> element,
> > > to
> > > specify which property holds the composite id.
> > >
> >
> > > Subject:     [Hibernate] Saving Children with composite-id
> > >
> > >
> > >
> > > I have a composite-id element in a child object:
> > >
> > >         <composite-id
> > > class="com.comcast.cable.dmc.itd.cct.persistence.CCRRecordPK"
> > > unsaved-value="any">
> > >             <key-property column="CCR_ID" length="22" name="ccrId"
> > > type="long"/>
> > >             <key-property column="RECORD_NUM" length="22"
> > > name="recordNum"
> > > type="long"/>
> > >         </composite-id>
> > >
> > > The CCRRecordPK class has two properties, ccrId and
> > > recordNum, both are
> > > java.lang.Long.
> > >
> > > In it's parent, I want to correctly map to this child, but I
> > > can't seem to
> > > figure out the mapping - and couldn't find any examples.  I
> > have this:
> > >
> > >         <bag role="mpsList" table="CMCF_MPS" cascade="all"
> > > order-by="record_num">
> > >             <key column="CCR_ID" length="22"/>
> > >             <one-to-many
> > > class="com.comcast.cable.dmc.itd.cct.persistence.CMCFMps"/>
> > >         </bag>
> > >
> > > but it doesn't work:
> > >
> > > [junit] Caused by: java.lang.ClassCastException
> > > [junit]     at
> > > 
> cirrus.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:238)
> > > [junit]     at
> > cirrus.hibernate.loader.Loader.doFind(Loader.java:155)
> > > [junit]     at
> > > cirrus.hibernate.loader.Loader.loadCollection(Loader.java:503)
> > > [junit]     at
> > > cirrus.hibernate.loader.OneToManyLoader.initialize(OneToManyLo
> > > ader.java:81)
> > >
> > > Any help is greatly appreciated.
> > >
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
> > > are you planning your Web Server Security? Click here to 
> get a FREE
> > > Thawte SSL guide and find the answers to all your  SSL
> > > security issues.
> > > http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
> > > _______________________________________________
> > > hibernate-devel mailing list
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/hibernate-devel
> > >
> > >
> > >
> > >
> > >
> > 
> **********************************************************************
> > > Any personal or sensitive information contained in this email and
> > > attachments must be handled in accordance with the Victorian
> > > Information
> > > Privacy Act 2000, the Health Records Act 2001 or the
> > Privacy Act 1988
> > > (Commonwealth), as applicable.
> > >
> > > This email, including all attachments, is confidential.  If
> > > you are not the
> > > intended recipient, you must not disclose, distribute, copy
> > or use the
> > > information contained in this email or attachments.  Any
> > > confidentiality or
> > > privilege is not waived or lost because this email has been
> > > sent to you in
> > > error.  If you have received it in error, please let us
> > know by reply
> > > email, delete it from your system and destroy any copies.
> > >
> > 
> **********************************************************************
> > >
> > >
> > >
> >
> 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> hibernate-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
> 
> 
> 
> 
> **********************************************************************
> Any personal or sensitive information contained in this email and
> attachments must be handled in accordance with the Victorian 
> Information
> Privacy Act 2000, the Health Records Act 2001 or the Privacy Act 1988
> (Commonwealth), as applicable.
> 
> This email, including all attachments, is confidential.  If 
> you are not the
> intended recipient, you must not disclose, distribute, copy or use the
> information contained in this email or attachments.  Any 
> confidentiality or
> privilege is not waived or lost because this email has been 
> sent to you in
> error.  If you have received it in error, please let us know by reply
> email, delete it from your system and destroy any copies.
> **********************************************************************
> 
> 
> 



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to