I have a parent Style that has a one to many with StyleItem.  When I
save a new style, The StyleId isn't feeding onto the StyleItem when
the StyleItem is inserted, resulting in a foreign key constraint
error).

I did one virtually the same yesterday on a different entity and it
worked.  Here are my mappings.

Thanks for everyone's patience.

jeff

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="Crestron.Tools.Core.Entities.Style,
Crestron.Tools.Core" table="Style">

    <id name="Id" column="Id"  type="String" unsaved-value="" length
="16"
      access="field.camelcase-underscore">
      <generator class="Crestron.Tools.Core.Data.IdGenerator,
Crestron.Tools.Core"/>
    </id>

    <property name="Name" type="String" length="60" unique="true"/>

    <bag name="Items" lazy="false" access="field.camelcase-underscore"
     cascade="save-update">
      <key column="StyleId"/>
      <one-to-many class="Crestron.Tools.Core.Entities.StyleItem,
Crestron.Tools.Core"/>
    </bag>

  </class>
</hibernate-mapping>

And the StyleItem

hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="Crestron.Tools.Core.Entities.StyleItem,
Crestron.Tools.Core" table="StyleItem">
    <id name="Id" column="Id"  type="String" unsaved-value="" length
="16"
      access="field.camelcase-underscore">
      <generator class="Crestron.Tools.Core.Data.IdGenerator,
Crestron.Tools.Core"/>
    </id>
    <property name="StyleId" type="String" length="16"
access="field.camelcase-underscore"/>

    <property name="ElementType" length="20"
       type="Crestron.Tools.Core.ElementTypeEnumMapper,
Crestron.Tools.Core"/>

    <property name="ElementName" type="String" length="40"/>
    <property name="PropertyFullName" type="String" length="40"/>
    <property name="ValueAsString" type="String" length="100"/>
  </class>
</hibernate-mapping>


And the log

NHibernate.Persister.Entity.AbstractEntityPersister: DEBUG - Inserting
entity: [Crestron.Tools.Core.Entities.Style#662e6cb0c0bd6670]
NHibernate.AdoNet.AbstractBatcher: DEBUG - Opened new IDbCommand, open
IDbCommands: 1
NHibernate.AdoNet.AbstractBatcher: DEBUG - Building an IDbCommand
object for the SqlString: INSERT INTO Style (Name, Id) VALUES (?, ?)
NHibernate.Persister.Entity.AbstractEntityPersister: DEBUG -
Dehydrating entity:
[Crestron.Tools.Core.Entities.Style#662e6cb0c0bd6670]
NHibernate.Type.StringType: DEBUG - binding
'RedActiveBlueInActiveButtonFaceTest' to parameter: 0
NHibernate.Type.StringType: DEBUG - binding '662e6cb0c0bd6670' to
parameter: 1
NHibernate.Connection.DriverConnectionProvider: DEBUG - Obtaining
IDbConnection from Driver
NHibernate.Persister.Entity.AbstractEntityPersister: DEBUG - Inserting
entity: [Crestron.Tools.Core.Entities.StyleItem#e8b5a1a1aa9ca1ba]
NHibernate.AdoNet.AbstractBatcher: DEBUG - Closed IDbCommand, open
IDbCommands: 0
NHibernate.AdoNet.ConnectionManager: DEBUG - skipping aggressive-
release due to flush cycle
NHibernate.AdoNet.AbstractBatcher: DEBUG - Opened new IDbCommand, open
IDbCommands: 1
NHibernate.AdoNet.AbstractBatcher: DEBUG - Building an IDbCommand
object for the SqlString: INSERT INTO StyleItem (StyleId, ElementType,
ElementName, PropertyFullName, ValueAsString, Id) VALUES
(?, ?, ?, ?, ?, ?)
NHibernate.Persister.Entity.AbstractEntityPersister: DEBUG -
Dehydrating entity:
[Crestron.Tools.Core.Entities.StyleItem#e8b5a1a1aa9ca1ba]
NHibernate.Type.StringType: DEBUG - binding '' to parameter: 0
Crestron.Tools.Core.ElementTypeEnumMapper: DEBUG - binding
'DisplayElement' to parameter: 1
NHibernate.Type.StringType: DEBUG - binding 'Button' to parameter: 2
NHibernate.Type.StringType: DEBUG - binding 'FaceColor.Active.0' to
parameter: 3
NHibernate.Type.StringType: DEBUG - binding '#FFFF0000' to parameter:
4
NHibernate.Type.StringType: DEBUG - binding 'e8b5a1a1aa9ca1ba' to
parameter: 5
NHibernate.AdoNet.AbstractBatcher: DEBUG - Closed IDbCommand, open
IDbCommands: 0
NHibernate.AdoNet.ConnectionManager: DEBUG - skipping aggressive-
release due to flush cycle
NHibernate.Util.ADOExceptionReporter: DEBUG - could not insert:
[Crestron.Tools.Core.Entities.StyleItem]
[ INSERT INTO StyleItem (StyleId, ElementType, ElementName,
PropertyFullName, ValueAsString, Id) VALUES (?, ?, ?, ?, ?, ?) ]

System.Data.SqlClient.SqlException: The INSERT statement conflicted
with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The conflict
occurred in database "ScratchDeviceLibrary", table "dbo.Style", column
'Id'.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning
(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader
(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery
(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand
cmd)
   at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation
expectation)
   at NHibernate.Persister.Entity.AbstractEntityPersister.Insert
(Object id, Object[] fields, Boolean[] notNull, Int32 j,
SqlCommandInfo sql, Object obj, ISessionImplementor session)
NHibernate.Util.ADOExceptionReporter: WARN  -
System.Data.SqlClient.SqlException: The INSERT statement conflicted
with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The conflict
occurred in database "ScratchDeviceLibrary", table "dbo.Style", column
'Id'.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning
(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader
(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery
(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand
cmd)
   at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation
expectation)
   at NHibernate.Persister.Entity.AbstractEntityPersister.Insert
(Object id, Object[] fields, Boolean[] notNull, Int32 j,
SqlCommandInfo sql, Object obj, ISessionImplementor session)
NHibernate.Util.ADOExceptionReporter: ERROR - The INSERT statement
conflicted with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The
conflict occurred in database "ScratchDeviceLibrary", table
"dbo.Style", column 'Id'.
The statement has been terminated.
NHibernate.Event.Default.AbstractFlushingEventListener: ERROR - Could
not synchronize database state with session
NHibernate.Exceptions.GenericADOException: could not insert:
[Crestron.Tools.Core.Entities.StyleItem][SQL: INSERT INTO StyleItem
(StyleId, ElementType, ElementName, PropertyFullName, ValueAsString,
Id) VALUES (?, ?, ?, ?, ?, ?)] --->
System.Data.SqlClient.SqlException: The INSERT statement conflicted
with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The conflict
occurred in database "ScratchDeviceLibrary", table "dbo.Style", column
'Id'.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning
(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader
(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery
(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand
cmd)
   at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation
expectation)
   at NHibernate.Persister.Entity.AbstractEntityPersister.Insert
(Object id, Object[] fields, Boolean[] notNull, Int32 j,
SqlCommandInfo sql, Object obj, ISessionImplementor session)
   --- End of inner exception stack trace ---
   at NHibernate.Persister.Entity.AbstractEntityPersister.Insert
(Object id, Object[] fields, Boolean[] notNull, Int32 j,
SqlCommandInfo sql, Object obj, ISessionImplementor session)
   at NHibernate.Persister.Entity.AbstractEntityPersister.Insert
(Object id, Object[] fields, Object obj, ISessionImplementor session)
   at NHibernate.Action.EntityInsertAction.Execute()
   at NHibernate.Engine.ActionQueue.Execute(IExecutable executable)
   at NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
   at NHibernate.Engine.ActionQueue.ExecuteActions()
   at
NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions
(IEventSource session)
NHibernate.AdoNet.ConnectionManager: DEBUG - registering flush end
NHibernate.AdoNet.ConnectionManager: DEBUG - aggressively releasing
database connection
NHibernate.Connection.ConnectionProvider: DEBUG - Closing connection
NHibernate.Impl.SessionImpl: DEBUG - closing session
NHibernate.AdoNet.AbstractBatcher: DEBUG - running BatcherImpl.Dispose
(true)
TestCase
'Crestron.Tools.Core.UnitTests.SchemaHelper.Reload_Schema_And_Add_TestData'
failed: Spring.Data.UncategorizedAdoException : Hibernate operation:
could not insert: [Crestron.Tools.Core.Entities.StyleItem][SQL: INSERT
INTO StyleItem (StyleId, ElementType, ElementName, PropertyFullName,
ValueAsString, Id) VALUES (?, ?, ?, ?, ?, ?)]; uncategorized
DataException for SQL [INSERT INTO StyleItem (StyleId, ElementType,
ElementName, PropertyFullName, ValueAsString, Id) VALUES
(?, ?, ?, ?, ?, ?)]; ErrorCode [<no error code>]; The INSERT statement
conflicted with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The
conflict occurred in database "ScratchDeviceLibrary", table
"dbo.Style", column 'Id'.
The statement has been terminated.
  ----> System.Data.SqlClient.SqlException : The INSERT statement
conflicted with the FOREIGN KEY constraint "FK3AD682F0EC6150A3". The
conflict occurred in database "ScratchDeviceLibrary", table
"dbo.Style", column 'Id'.
The statement has been terminated.
        l:\projects\spring-net\trunk\src\Spring\Spring.Data\Data\Support
\FallbackExceptionTranslator.cs(67,0): at
Spring.Data.Support.FallbackExceptionTranslator.Translate(String task,
String sql, Exception exception)
        l:\projects\spring-net\trunk\src\Spring\Spring.Data\Data\Support
\ErrorCodeExceptionTranslator.cs(227,0): at
Spring.Data.Support.ErrorCodeExceptionTranslator.Translate(String
task, String sql, Exception exception)
        l:\projects\spring-net\trunk\src\Spring\Spring.Data.NHibernate12\Data
\NHibernate\HibernateAccessor.cs(453,0): at
Spring.Data.NHibernate.HibernateAccessor.ConvertAdoAccessException
(ADOException ex)
        l:\projects\spring-net\trunk\src\Spring\Spring.Data.NHibernate\Data
\NHibernate\HibernateTemplate.cs(921,0): at
Spring.Data.NHibernate.HibernateTemplate.Execute(IHibernateCallback
action, Boolean exposeNativeSession)
        l:\projects\spring-net\trunk\src\Spring\Spring.Data.NHibernate\Data
\NHibernate\HibernateTemplate.cs(650,0): at
Spring.Data.NHibernate.HibernateTemplate.SaveOrUpdate(Object entity)
        l:\projects\spring-net\trunk\src\Spring\Spring.Data.NHibernate12\Data
\NHibernate\Generic\HibernateTemplate.cs(586,0): at
Spring.Data.NHibernate.Generic.HibernateTemplate.SaveOrUpdate(Object
entity)
        C:\Source\Fusion\Trunk\Core\Core\Data\CoreDLMaintDao.cs(30,0): at
Crestron.Tools.Core.Data.CoreDLMaintDao.Save(Style style)
        C:\Source\Fusion\Trunk\Core\Core.UnitTests\SchemaHelper.cs(72,0): at
Crestron.Tools.Core.UnitTests.SchemaHelper.addStyleTestData()
        C:\Source\Fusion\Trunk\Core\Core.UnitTests\SchemaHelper.cs(46,0): at
Crestron.Tools.Core.UnitTests.SchemaHelper.Reload_Schema_And_Add_TestData
()
        --SqlException
        at System.Data.SqlClient.SqlConnection.OnError(SqlException
exception, Boolean breakConnection)
        at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
        at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning
(TdsParserStateObject stateObj)
        at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj)
        at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader
ds, RunBehavior runBehavior, String resetOptionsString)
        at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds
(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean
returnStream, Boolean async)
        at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method, DbAsyncResult result)
        at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery
(DbAsyncResult result, String methodName, Boolean sendToPipe)
        at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
        at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd)
        at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation
expectation)
        at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object
id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql,
Object obj, ISessionImplementor session)





--~--~---------~--~----~------------~-------~--~----~
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