Hello, Thanks for that.
I can't try right now but I will tomorrow. Yes I'm using bag because I want to map to an IList, Im just more familiar with them, although it would make sense to use a set. However, I don't understand why my issue is related to the fact I'm using a bag ! Is it a bug in NH ?? I can't see a reason why this would explain the ridiculous number of queries NH is executing. On 5 avr, 19:32, Jay Chapman <jayc...@gmail.com> wrote: > I've been away from NHibernate for a long time, so my recollection may not > be 100% accurate here. But I believe the bag may be the issue. Change to > use a set instead of a bag and see if that resolves the issue. Do you > really want bag behavior, are you just using a bag so you can map to IList? > If you do not want duplicates in the collection, such as details of an > order, stops on a route, children of a person, employees of a manager, you > are better off with a set. > > On Sun, Apr 5, 2009 at 2:06 PM, graphicsxp <graphic...@googlemail.com>wrote: > > > > > Could someone help with this issue ? I've searched online but I' m > > under the impression that I've done the right thing, i.e. I put > > inverse=true in the bag collection .. > > I'm saving a Post which has 30 Comments and NH does an update 30 > > times, no update should be required at all.... > > > On 3 avr, 14:48, graphicsxp <graphic...@googlemail.com> wrote: > > > Hi, > > > > I'm using NHProfiler to profile my NH activity and I'm getting the > > > warning: > > > > superfluous <many-to-one> update - use inverse = 'true' > > > > I have two classes, Post and Comment, here is the mapping : > > > > Post.hbm.xml : > > > > hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> > > > <class name="Metrica.Post, Metrica" table="Post" lazy="true" > > > discriminator-value="POST" abstract="true"> > > > <id name="Id" column="PostID"> > > > <generator class="native"/> > > > </id> > > > > <discriminator column="Type" type="string" /> > > > > <property name="DateCreated" type="date" column="DateCreated" > > > insert="false" generated="always" /> > > > > <property name="Headline" type="string" length="500" > > > column="Headline" /> > > > <many-to-one class="Metrica.Publication,Metrica" > > > name="thePublication" cascade="none" column="PublicationID" /> > > > <property name="URL" type="string" length="1000" column="URL" /> > > > <property name="AnalystComment" type="string" > > > column="AnalystComment" /> > > > <bag name="Comments" inverse="true" cascade="all" lazy="true"> > > > <key column="PostID" /> > > > <one-to-many class="Metrica.CommentPost, Metrica" /> > > > </bag> > > > </class> > > > > Comment.hbm.xml: > > > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> > > > <class name="Metrica.CommentPost, Metrica" table="Comment" > > > lazy="true" discriminator-value="COMMENT" > > > proxy="Metrica.CommentPost,Metrica" > > > > <id name="Id" column="CommentID"> > > > <generator class="native"/> > > > </id> > > > > <discriminator column="Type" type="string" /> > > > > <property name="DateCreated" type="date" column="DateCreated" > > > insert="false" generated="always" /> > > > > <many-to-one name="thePost" class="Metrica.Post, Metrica" > > > cascade="none" column="PostID" not-null="true" /> > > > > </class> > > > </hibernate-mapping> > > > > I don't see where I should add inverse=true in order to avoid all the > > > UPDATE statements that occur when I save a Post : > > > > UPDATE Comment SET PostID = @p0 WHERE CommentID = @p1 > > > > (called as many times as there are comment entities associated to the > > > post entity ! ) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to nhusers@googlegroups.com To unsubscribe from this group, send email to nhusers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---