Nevermind, I found the problem. Turns out I had declared SomeClass as Entity<int>, but it's a serial8 on the Informix DB, so it should have been Entity<long>. Since Informix uses a different query to get the identity value for serial (32bit) and serial8 (64bit), it was returning 0 for all instances.
Diego On Tue, Dec 15, 2009 at 12:37, Diego Mijelshon <[email protected]>wrote: > I'm getting this when trying to save a few instances of a class: > > NHibernate.NonUniqueObjectException: a different object with the same > identifier value was already associated with the session: 0, of entity: > SomeClass > at > NHibernate.Engine.StatefulPersistenceContext.CheckUniqueness(EntityKey key, > Object obj) > at > NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object > entity, EntityKey key, IEntityPersister persister, Boolean > useIdentityColumn, Object anything, IEventSource source, Boolean > requiresImmediateIdAccess) > at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object > entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, > Object anything, IEventSource source, Boolean requiresImmediateIdAccess) > at > NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object > entity, String entityName, Object anything, IEventSource source, Boolean > requiresImmediateIdAccess) > at > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent > event) > at > NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent > event) > at > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent > event) > at > NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent > event) > at > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent > event) > at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event) > at NHibernate.Impl.SessionImpl.Save(Object obj) > at SomeRepository.Save(SomeClass entity) in ... > > The code is just calling Session.Save(entity). > > Relevant mapping is: > > <class name="SomeClass" table="some_table" dynamic-insert="true" > dynamic-update="true"> > <id name="Id" column="some_class_id"> > <generator class="identity"/> > </id> > > Id is declared in the Entity<TIdentity> superclass: > > public virtual TIdentity Id { get; protected set; } > > The first save (which comes after some saving of other entities) succeeds. > Any ideas? > > Diego > -- 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.
