Thank you for your answer.
I've added this property in the class and the mapping file and its
corresponding field in the table, but I still get this error when
deleting an item:
could not delete collection rows:
[DeliveryDays.Shipping.Days#france_by_tnt_express][SQL: UPDATE
delivery_days SET shipping_method = null WHERE shipping_method = ?p0
AND shipping_method = ?p1 AND Day = ?p2]"
Should I use unsaved-value="any" ?Should I use cascade="all" ?
I'm saving using session.Flush() (not SaveOrUpdate) because I want to
save all my entities.
This is very strange because the SQL sent is an UPDATE and not a
DELETE...
Am I doing something wrong ?

Best regards,

mathmax

On 11 oct, 17:55, Anne Epstein <[email protected]> wrote:
> Composite keys are finicky.  One key annoyance with them is that unless you
> givroperly.e them a little help, composite-key entities can't properly use
> SaveOrUpdate, and can't be used with cascading properly.
>
> Two fixes.  you can implement an IInterceptor, or you can add a <version>
> property.  I haven't done the first, but I can say from experience the
> second is simple enough. Just a few things you need to do:
>
> 1) add a property to your class-just like any of your other properties in
> your class... unless you do choose to use access="field..." in this case,
> let's name your property LastModifiedOn. this new field is for NHibernate,
> not for you, so you can look, but don't mess with it yourself.  (you may
> want to use access="field...." option so you man map directly to the private
> field and you don't have to expose this outside your class-you'll need to go
> to the NH docs and pick your naming strategy)-
>
> 2) add property to your mapping:
> <version name="LastModifiedOn" type="timestamp" column="LastModifiedOn"
> />
>
> 3) Don't forget to add the new field to the table! Note that if you add a
> version column to an existing table, you're going to have to prepopulate the
> existing rows for your your new column with an initial datetime or you'll
> get errors-any date at all, so long as it's in the past. 1/1/2009 12:00:00
> is as good a value as any....
>
> On Sun, Oct 11, 2009 at 1:45 AM, mathmax <[email protected]>wrote:
>
>
>
> > Hello,
>
> > I try to delete an item of a collection inside a transaction. When I
> > flush the session I get this error because the class of the child
> > items is mapped with a composite Id.
>
> > the mapping file look like this:
>
> >  <class name="Shipping" table="shipping_methods" lazy="false">
> >    <id name="Id" column="id">
> >      <generator class="assigned" />
> >    </id>
> >     ...
> >    <bag name="Days" table="delivery_days" lazy="false" cascade="all-
> > delete-orphan">
> >      <key column="shipping_method"/>
> >      <one-to-many class="DeliveryDay" />
> >    </bag>
>
> >  </class>
>
> >  <class name="DeliveryDay" table="delivery_days" lazy="false">
> >    <!--http://journalofasoftwaredev.wordpress.com/2008/04/19/
> > nhibernate-exception-unexpected-row-count-0-expected-1/--<http://journalofasoftwaredev.wordpress.com/2008/04/19/%0Anhibernate-e...>
>
> >    <composite-id unsaved-value="any">
> >      <key-property name="ShippingMethod" column="shipping_method" />
> >      <key-property name="Day" />
> >    </composite-id>
> >    ...
> >  </class>
>
> > I try with and without unsaved-value="any" on the composite-id tag
> > cascade="all-delete-orphan", cascade="all" and no cascade attribute on
> > the bag tag.
> > But I always get an error.
> > Depending on the cascade and unsaved-value attribute I get different
> > error messages.
> > With this mapping file I get this error : {"Unexpected row count: 0;
> > expected: 1"}
> > and it seems that the SQL sent to the database is an UPDATE statement
> > instead of a DELETE statement... very strange.
> > I also get sometimes this error when I try to add more than on item to
> > the collection : {"a different object with the same identifier value
> > was already associated with the session: DeliveryDays.DeliveryDay, of
> > entity: DeliveryDays.DeliveryDay"}
>
> > Does anyone know what I am doing wrong with composite-key ?
>
> > regards,
>
> > mathmax
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to