Si tenes un campo de tipo integer tenes dos opciones: a. Cambiar el mapping a <generator class="assigned"></generator> y establecerle el LocalId antes de grabar.
b. O utilizar alguna de las otras formas de generar un valor para la PK.... dale una mirada a http://barchitect.blogspot.com.ar/2008/07/nhibernate-generator-and-primary-key.html El 25 de febrero de 2013 12:02, Osay González Fuentes <[email protected]>escribió: > En la BD id está como integer, peor como antes utilizaba doctrine de > alguna forma el insertaba correctamente, ahora probé con un campo id SERIAL > y si funciona, conoces alguna forma de insertar en un campo de tipo > integer???**** > > ** ** > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Gustavo Fuentes > *Sent:* Friday, February 22, 2013 8:44 PM > *To:* [email protected] > *Subject:* Re: [NHibernate-Hispano] Problema insertando datos**** > > ** ** > > Y el campo Id está generado como "Serial" ?? es decir: la bd le asigna un > valor al momento de la inserción o se lo tenés que poner a mano?**** > > ** ** > > Te pregunto ya que en el mapping le estas indicando "<generator class=" > native" />" **** > > ** ** > > El 22 de febrero de 2013 21:38, Osay González Fuentes <[email protected]> > escribió:**** > > La BD ya la tenía creada de una aplicación anterior hecha con doctrine y > ahora me interesa hacer una aplicación de escritorio que lea esa misma BD* > *** > > **** > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Gustavo Fuentes > *Sent:* Friday, February 22, 2013 5:44 PM**** > > > *To:* [email protected] > *Subject:* Re: [NHibernate-Hispano] Problema insertando datos**** > > **** > > Me respondo a mi mismo... despues de haber leído el error :-)... Como > creaste la tabla? De acuerdo al mapping la bd le debería colocar el valor > al campo Id!**** > > **** > > El 22 de febrero de 2013 19:42, Gustavo Fuentes <[email protected]> > escribió:**** > > En que línea te da el error y que error?**** > > **** > > El 22 de febrero de 2013 19:06, Osay González Fuentes <[email protected]> > escribió:**** > > **** > > Estoy comenzando en el mundo del NHibernate y me acaba de ocurrir el > siguiente error cuando intento insertar: **** > > **** > > {"ERROR: 23502: null value in column \"id\" violates not-null constraint"} > **** > > **** > > A continuación les dejo como tengo configurado mi app a ver si alguien me > puede decir que sucede porque la verdad es que ya estoy cansado de buscar y > ni idea que pueda suceder.**** > > **** > > Hibernate.cfg.xml**** > > **** > > <?xml version="1.0" encoding="utf-8"?>**** > > <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >**** > > <session-factory>**** > > <property name="connection.driver_class"> > NHibernate.Driver.NpgsqlDriver</property>**** > > <property name="connection.connection_string">**** > > Server=localhost;Database=sislab;User ID=postgres;Password=zionucicu; > **** > > </property>**** > > <property name="dialect">NHibernate.Dialect.PostgreSQL82Dialect</ > property>**** > > <mapping assembly="NHPostgres"/>**** > > </session-factory>**** > > </hibernate-configuration>**** > > **** > > **** > > Local.hbm.xml**** > > **** > > <?xml version="1.0" encoding="utf-8" ?>**** > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHPostgres > " namespace="NHPostgres">**** > > <class name="NHPostgres.Local,NHPostgres" table="local" lazy="true">**** > > <id name="LocalId" column="id">**** > > <generator class="native" />**** > > </id>**** > > <property name="Nombre" column="nombre" type="String" not-null="true" > ></property>**** > > <property name="Cant_pc" column="cantida_pc" type="Int32" not-null=" > true"></property>**** > > </class>**** > > </hibernate-mapping>**** > > **** > > Class Local.cs**** > > **** > > class Local**** > > {**** > > int _localId;**** > > **** > > public virtual int LocalId**** > > {**** > > get { return _localId; }**** > > set { _localId = value; }**** > > }**** > > string _nombre;**** > > **** > > public virtual string Nombre**** > > {**** > > get { return _nombre; }**** > > set { _nombre = value; }**** > > }**** > > int _cant_pc;**** > > **** > > public virtual int Cant_pc**** > > {**** > > get { return _cant_pc; }**** > > set { _cant_pc = value; }**** > > }**** > > **** > > }**** > > **** > > Método de inserter**** > > **** > > public void InsertLocal()**** > > {**** > > ISessionFactory sessionFactory = new Configuration > ().Configure().BuildSessionFactory();**** > > Local lo = new Local();**** > > lo.Nombre = "Auditorio 15";**** > > lo.Cant_pc = 20;**** > > using (ISession session = sessionFactory.OpenSession())**** > > {**** > > using (ITransaction tx = session.BeginTransaction())**** > > {**** > > session.Save(lo);**** > > tx.Commit();**** > > }**** > > Console.WriteLine("OBJ insertado");**** > > }**** > > }**** > > **** > > Alguien puede sugerirme que sucede que no me deja insertar dato alguno.*** > * > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > > **** > > > > **** > > **** > > -- > {**** > > me: 'Gustavo Fuentes',**** > > mobile: '+54 9 11 69674021'**** > > }**** > > > > **** > > **** > > -- > {**** > > me: 'Gustavo Fuentes',**** > > mobile: '+54 9 11 69674021'**** > > }**** > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > > **** > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > > **** > > > > **** > > ** ** > > -- > {**** > > me: 'Gustavo Fuentes',**** > > mobile: '+54 9 11 69674021'**** > > }**** > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > > **** > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > > > -- { me: 'Gustavo Fuentes', mobile: '+54 9 11 69674021' } -- -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano --- Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a [email protected]. Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
