Sorry, mutable=false prevents updates and deletes, *not* inserts
On Nov 4, 4:37 pm, Mauricio Scheffer <[email protected]>
wrote:
> The NHibernate session is probably dirty so it's flushing. Either you
> modified an entity or there's a mismatch in your mapping.
>
> See:
>
> http://stackoverflow.com/questions/780755/nhibernate-flush-how-it-workshttp://stackoverflow.com/questions/43320/nhibernate-isession-flush-wh...
>
> If you want to ensure that the entity is never inserted or updated set
> mutable=false:http://www.castleproject.org/activerecord/documentation/trunk/manual/...
>
> On Nov 4, 3:16 pm, jake <[email protected]> wrote:
>
>
>
> > I created a view in mysql that join several tables. I then created an
> > ActiveRecord object to access the view like I would a table. The
> > issue is that whenever I compile I get the following error:
>
> > Can not modify more than one base table through a join view
> > 'tablename'
>
> > It looks like nhibernate is doing an update, but I don't know why, I'm
> > only accessing the Find function of the object. Any Ideas?
>
> > Stack Trace:
> > [MySqlException (0x80004005): Can not modify more than one base table
> > through a join view 'tablename']
> > MySql.Data.MySqlClient.MySqlStream.OpenPacket() +278
> > MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64&
> > affectedRows, Int64& lastInsertId) +97
> > MySql.Data.MySqlClient.MySqlDataReader.GetResultSet() +87
> > MySql.Data.MySqlClient.MySqlDataReader.NextResult() +1004
> > MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior
> > behavior) +1620
> > MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() +32
> > MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +69
> > NHibernate.Impl.BatcherImpl.ExecuteNonQuery(IDbCommand cmd) +61
> > NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation
> > expectation) +66
> > NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object
> > id, Object[] fields, Object[] oldFields, Boolean[] includeProperty,
> > Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql,
> > ISessionImplementor session) +1906
>
> > [ADOException: could not update:
> > [Table.Models.Rooms.Community_Room_Client_View#15][SQL: UPDATE
> > viewname SET _id = ?, _id2 = ?, _id3 = ? WHERE _id4 = ?]]
> > NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object
> > id, Object[] fields, Object[] oldFields, Boolean[] includeProperty,
> > Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql,
> > ISessionImplementor session) +2182
> > NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object
> > id, Object[] fields, Int32[] dirtyFields, Boolean hasDirtyCollection,
> > Object[] oldFields, Object oldVersion, Object obj, ISessionImplementor
> > session) +512
> > NHibernate.Impl.ScheduledUpdate.Execute() +559
> > NHibernate.Impl.SessionImpl.Execute(IExecutable executable) +206
> > NHibernate.Impl.SessionImpl.ExecuteAll(IList list) +135
> > NHibernate.Impl.SessionImpl.Execute() +292
> > NHibernate.Impl.SessionImpl.Flush() +130
> > Castle.ActiveRecord.Framework.Scopes.AbstractScope.PerformDisposal
> > (ICollection`1 sessions, Boolean flush, Boolean close) +115
> > Castle.ActiveRecord.SessionScope.PerformDisposal(ICollection`1
> > sessions) +103
> > Castle.ActiveRecord.Framework.Scopes.AbstractScope.Dispose() +76
> > Castle.ActiveRecord.Framework.SessionScopeWebModule.OnEndRequest
> > (Object sender, EventArgs e) +126
>
> > System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep
> > .Execute
> > () +68
> > System.Web.HttpApplication.ExecuteStep(IExecutionStep step,
> > Boolean& completedSynchronously) +75
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Users" 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/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---