Ya probé a quitar el cascade, pero el error sigue siendo el mismo. Te
copio los ficheros tal y como los tengo ahora:
Mapping documents:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" default-
lazy="false">
<class name="dataAccess.csfiles.datospersonalesygrupo.IdentName,
dataAccess" table="identname">
<id name="IdName" column="idname" type="Int32">
<generator class="identity" />
</id>
<property name="Name" column="name" type="String"/>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" default-
lazy="false">
<class name="dataAccess.csfiles.datospersonalesygrupo.MemberData,
dataAccess" table="datospersonales">
<id name="IdPersonales" column="idpersonales" type="Int32">
<generator class="identity" />
</id>
<bag name="Idents" table="idents">
<key column="idpersonales" />
<composite-element
class="dataAccess.csfiles.datospersonalesygrupo.Ident, dataAccess">
<property name="Number" column="number" type="String"/>
<property name="Place" column="place" type="String"/>
<property name="Date" column="date"/>
<many-to-one name="Name" cascade="save-update"
class="dataAccess.csfiles.datospersonalesygrupo.IdentName, dataAccess"
column="idname"/>
</composite-element>
</bag>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
public void saveIdentName(IdentName identName) {
if (!session.IsConnected)
session.Reconnect();
ITransaction transaction = null;
try
{
transaction = session.BeginTransaction();
session.SaveOrUpdate(identName);
transaction.Commit();
session.Disconnect();
}
catch (Exception e)
{
transaction.Rollback();
session.Disconnect();
throw e;
}
}
Full stack trace of any exception that occurs:
[SqlException (0x80131904): Cannot insert the value NULL into column
'idName', table 'curriculum.dbo.identname'; column does not allow
nulls. INSERT fails.
The statement has been terminated.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection) +177
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection) +68
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj) +199
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj) +2300
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
System.Data.SqlClient.SqlDataReader.get_MetaData() +62
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString) +294
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
async) +1021
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method, DbAsyncResult result) +314
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method) +20
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior, String method) +107
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior
behavior) +10
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +9
NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net
\nhibernate-1.2.0.Beta1\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:
182
NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[]
fields, Boolean[] notNull, SqlCommandInfo sql, Object obj,
ISessionImplementor session) in c:\net
\nhibernate-1.2.0.Beta1\nhibernate\src\NHibernate\Persister\Entity
\AbstractEntityPersister.cs:1972
[ADOException: could not insert:
[dataAccess.csfiles.datospersonalesygrupo.IdentName][SQL: INSERT INTO
identname (name) VALUES (?)]]
dataAccess.csfiles.DBManager.saveIdentName(IdentName identName) in C:
\Documents and Settings\César Díaz García\Mis documentos\Visual Studio
2005\Projects\dataAccess\dataAccess\DBManager.cs:169
Controlador.saveIdentName(IdentName identName) in c:\Documents and
Settings\César Díaz García\Mis documentos\Visual Studio 2005\WebSites
\proyecto\App_Code\Controlador.cs:80
web_privado_perfil_modificar.ButtonGuardar_Click(Object sender,
EventArgs e) in c:\Documents and Settings\César Díaz García\Mis
documentos\Visual Studio 2005\WebSites\proyecto\web\privado
\perfil_modificar.aspx.cs:69
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
System.Web.UI.WebControls.Button.RaisePostBackEvent(String
eventArgument) +97
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String
eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
+33
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+4880
Name and version of the database you are using:
SQL Server 9.0.1399
The generated SQL (show_sql=true):
SQL: INSERT INTO identname (name) VALUES (?)
On 6 feb, 14:55, Fabio Maulo <[EMAIL PROTECTED]> wrote:
> Ah me olvidé de otra cosa...
> Cuidado porque el IdentName se está guardando también con
> dataAccess.csfiles.datospersonalesygrupo.Ident por el cascade que
> especificaste.
>
> Chili escribió:
>
> > .......
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" default-
> > lazy="false">
> > <class name="dataAccess.csfiles.datospersonalesygrupo.MemberData,
> > dataAccess" table="datospersonales">
> > <id name="IdPersonales" column="idpersonales" type="Int32">
> > <generator class="identity" />
> > </id>
> > <bag name="Idents" table="idents">
> > <key column="idpersonales" />
> > <composite-element
> > class="dataAccess.csfiles.datospersonalesygrupo.Ident, dataAccess">
> > <property name="Number" column="number" type="String"/>
> > <property name="Place" column="place" type="String"/>
> > <property name="Date" column="date"/>
> > <many-to-one name="Name" cascade="save-update"
> > class="dataAccess.csfiles.datospersonalesygrupo.IdentName,
> > dataAccess"
> > column="idname"/>
> > </composite-element>
> > </bag>
> > </class>
> > </hibernate-mapping>
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups-beta.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---