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.


Responder a