Edson Vizcaino | 1 Feb 04:30
Picon

Re: mapear un enumerado

Hola gente,


Tengo una consulta que va con este hilo. Esta claro que se puede mapear un campo de tipo enum, pero ¿Se puede mapear un enumerado completo? si/no como?? 


Saludos,
Edson V.



El 31 de enero de 2012 14:04, Dennis Alba <alba2805 <at> gmail.com> escribió:
muchas gracias Nicolas, has evacuado mi duda.

El 31/01/12, Nicolás Marzoni <nmarzoni <at> gmail.com> escribió:
> Si, se puede.
> Tan solo tenés que definir la propiedad de la clase con su nombre, del
> resto se encarga NHibernate.
>
> Por ejemplo:
>
> <property name="Signo" type="EnumSignos" not-null="true"/>
>
> Tambien podés mapear colecciones de valores de la siguiente manera
>
> <bag name="Modulos" table="ModulosPorRol">
>       <key column="IdRol"/>
>       <element column="IdModulo" type="Celsius.Security.Modulos,
> Celsius.Security" not-null="true"/>
> </bag>
>
> Espero te sirva.
> Saludos.
>
> El 31 de enero de 2012 13:30, Banzai <alba2805 <at> gmail.com> escribió:
>
>> hola tropa, alguien sabe si en los ORM y en etse en particular se
>> puede mapear un campo que sea un enumerado??
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> NHibernate-Hispano <at> googlegroups.com
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
>
>
>
> --
> Nicolás Matías Marzoni
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> NHibernate-Hispano <at> googlegroups.com
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

--
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

--
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
Picon
Gravatar

Re: Error al consultar los datos BINARY_FLOAT Nhibernate Oracle. NET

Tenes que setear el dialecto:

NHibernate.Dialect.Oracle10gDialect 

En la configuración...

saludos,

2012/1/31 Gustavo Souza Gonçalves <gustavosouzagoncalves <at> gmail.com>
Buenos días a todos!
Estamos desarrollando una aplicación que utiliza NHibernate uNhAddIns,
y el modelo MVVM, crear una nueva tabla, la tabla y tener la
BINARY_FLOAT tipo. Cualquier otra consulta a la base de datos funciona
muy bien, pero esto, al intentar obtener el resultado, me devuelve el
error en VisualStudio. Cuando hago la misma consulta en la base de
datos, la consulta funciona perfectamente.

Aquí está mi table:

CREATE TABLE pct_pro.Roll_Shop_Data (
      NÚMERO Id_Roll_Shop_Data (20,0) NOT NULL,
      Mill VARCHAR2 (2) NOT NULL,
      N2_Send NCHAR (1) no es nula,
      Roll_Id VARCHAR2 (20) NOT NULL,
      Stand_Id VARCHAR2 (2) NOT NULL,
      Roll_Type VARCHAR2 (3),
      Grinding_Flag número (10),
      Planned_Roll_Pos CHAR (1),
      Roll_Class número (10),
      Roll_Property_Class número (10),
      Shape_Code número (10),
      Related_Roll_Id VARCHAR2 (20),
      Roll_Pair_No VARCHAR2 (20),
      Roll_Diameter BINARY_FLOAT,
      Shim_Plate_Thick BINARY_FLOAT,
      Initial_Temp BINARY_FLOAT,
      Corona BINARY_FLOAT,
      PRIMARY KEY (Id_Roll_Shop_Data)
   );

Aquí está mi consulta:

    [PersistenceConversation(ConversationEndMode = EndMode.End)]
       public IEnumerable<RollShopData> ConsultarDadosOficina(String
codigoLaminador)
       {
           try
           {
               var criteria = DetachedCriteria.For<RollShopData>()
                   .Add(Restrictions.Eq("Mill", codigoLaminador));

               return
rfRollShopDataRepository.GetListCriteria(criteria);
           }
           catch (Exception ex)
           {
               Log.Error(AppStrings.EventNatureFornosConsumo,
LibStrings.MessageExceptionQuery, ex);
               throw new LoggedException(ex.Message);
           }
       }

El error que me devuelve a los registros es la siguiente:

21:29:36.997 ERROR [AbstractBatcher.ExecuteReader] nHibernate: Could
not execute query: SELECT this_.Id_Roll_Shop_Data as Id1_19_0_,
this_.Mill as Mill19_0_, this_.N2_Send as N3_19_0_, this_.Roll_Id as
Roll4_19_0_, this_.Stand_Id as Stand5_19_0_, this_.Roll_Type as
Roll6_19_0_, this_.Grinding_Flag as Grinding7_19_0_,
this_.Planned_Roll_Pos as Planned8_19_0_, this_.Roll_Class as
Roll9_19_0_, this_.Roll_Property_Class as Roll10_19_0_,
this_.Shape_Code as Shape11_19_0_, this_.Related_Roll_Id as
Related12_19_0_, this_.Roll_Pair_No as Roll13_19_0_,
this_.Roll_Diameter as Roll14_19_0_, this_.Shim_Plate_Thick as
Shim15_19_0_, this_.Initial_Temp as Initial16_19_0_, this_.Crown as
Crown19_0_ FROM Roll_Shop_Data this_ WHERE this_.Mill = :p0
System.NotSupportedException: Unsupported Oracle data type 100
encountered.

Mi pregunta es: Por lo que he investigado, este error que ocurrió con
la versión de Oracle 9g, pero mi versión actual de Oracle es 10g. Cómo
utilizar NHibernate y Oracle, ¿cómo puedo actualizar esta DLL? Debe
actualizar el archivo DLL?

--
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

--
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
BlackCid | 8 Feb 14:17
Picon

Crear un nueva entrada y obtenerla luego

Resulta qe en un momento dado creo una nueva entrada, pero hasta que
no se hace un flush no puedo obtenerla, ¿hay alguna forma de
recuperarla antes de hacer un flush?

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Picon

Re: Crear un nueva entrada y obtenerla luego

Desde la misma session SI, desde otra NO. El flush es justamente el
"pasaje" de la session a la db. (también influye como manejes la
transacción).

saludos.
nelo

2012/2/8 BlackCid <blackcid <at> gmail.com>:
> Resulta qe en un momento dado creo una nueva entrada, pero hasta que
> no se hace un flush no puedo obtenerla, ¿hay alguna forma de
> recuperarla antes de hacer un flush?
>
> --
> Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

BlackCid | 9 Feb 08:49
Picon

Re: Crear un nueva entrada y obtenerla luego

Ya, yo estoy hablando desde la misma sesión, pero resulta que hago un
save de dicha entidad, y luego cuando hago una query no me sale.

On 8 feb, 17:14, "nelopause...@gmail.com" <nelopause...@gmail.com>
wrote:
> Desde la misma session SI, desde otra NO. El flush es justamente el
> "pasaje" de la session a la db. (también influye como manejes la
> transacción).
>
> saludos.
> nelo
>
> 2012/2/8 BlackCid <black...@gmail.com>:
>
>
>
> > Resulta qe en un momento dado creo una nueva entrada, pero hasta que
> > no se hace un flush no puedo obtenerla, ¿hay alguna forma de
> > recuperarla antes de hacer un flush?
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Kalli | 9 Feb 19:35
Picon

Problema con un mapeo con FNH por una clave compuesta

Tengo 2 tablas relacionadas con una one-to-many y un problema con los
mapeos con Fluent NHibernate, porque hay una clave compuesta.

Os explico.
Pongamos que las tablas son persona y coche (no es cierto pero me será
más fácil explicarlo con conceptos conocidos que con los conceptos del
dominio reales).
Así, una persona puede tener muchos coches pero que un coche es de una
y sola una persona.

Existe la tabla Personas que tiene los campos {Id, Ano_nacimiento,
Nombre_completo}.
La de coches {Ano_nacimiento, Nombre_completo, Modelo_coche}.
Como podéis ver, el problema es que la foreign key en la tabla coches
no es "Coche_id" sino la compuesta por

"Ano_nacimiento"+"Nombre_completo", que también identifica a una
persona de forma unívoca.
Eso a pesar de que la tabla de personas ¡tiene un campo id que podría
haberse usado!

Sé lo que Fabio diría al respecto y tiene razón, pero se trata de
tablas de una base de datos heredada, en la que sólo tengo

permisos de lectura y, por supuesto, rediseñar o algo parecido es
desgraciadamente inviable...
Vuelvo a recordar no obstante que las tablas acabo de inventármelas,
pero el problema (con otras entidades y otras tablas) es

el que he intentado exponer.

Muchas gracias a quien pueda y quiera echarme un cable,
JC

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Picon
Gravatar

Re: Error al consultar los datos BINARY_FLOAT Nhibernate Oracle. NET

No sé si el anterior mensaje fue enviado, pero esto ya está en mi
app.config

   <property name="dialect">NHibernate.Dialect.Oracle10gDialect</
property>

On 1 feb, 13:11, José F. Romaniello <jfromanie...@gmail.com> wrote:
> Tenes que setear el dialecto:
> NHibernate.Dialect.Oracle10gDialect
>
> En la configuración...
>
> saludos,
>
> 2012/1/31 Gustavo Souza Gonçalves <gustavosouzagoncal...@gmail.com>
>
>
>
>
>
>
>
> > Buenos días a todos!
> > Estamos desarrollando una aplicación que utiliza NHibernate uNhAddIns,
> > y el modelo MVVM, crear una nueva tabla, la tabla y tener la
> > BINARY_FLOAT tipo. Cualquier otra consulta a la base de datos funciona
> > muy bien, pero esto, al intentar obtener el resultado, me devuelve el
> > error en VisualStudio. Cuando hago la misma consulta en la base de
> > datos, la consulta funciona perfectamente.
>
> > Aquí está mi table:
>
> > CREATE TABLE pct_pro.Roll_Shop_Data (
> >       NÚMERO Id_Roll_Shop_Data (20,0) NOT NULL,
> >       Mill VARCHAR2 (2) NOT NULL,
> >       N2_Send NCHAR (1) no es nula,
> >       Roll_Id VARCHAR2 (20) NOT NULL,
> >       Stand_Id VARCHAR2 (2) NOT NULL,
> >       Roll_Type VARCHAR2 (3),
> >       Grinding_Flag número (10),
> >       Planned_Roll_Pos CHAR (1),
> >       Roll_Class número (10),
> >       Roll_Property_Class número (10),
> >       Shape_Code número (10),
> >       Related_Roll_Id VARCHAR2 (20),
> >       Roll_Pair_No VARCHAR2 (20),
> >       Roll_Diameter BINARY_FLOAT,
> >       Shim_Plate_Thick BINARY_FLOAT,
> >       Initial_Temp BINARY_FLOAT,
> >       Corona BINARY_FLOAT,
> >       PRIMARY KEY (Id_Roll_Shop_Data)
> >    );
>
> > Aquí está mi consulta:
>
> >     [PersistenceConversation(ConversationEndMode = EndMode.End)]
> >        public IEnumerable<RollShopData> ConsultarDadosOficina(String
> > codigoLaminador)
> >        {
> >            try
> >            {
> >                var criteria = DetachedCriteria.For<RollShopData>()
> >                    .Add(Restrictions.Eq("Mill", codigoLaminador));
>
> >                return
> > rfRollShopDataRepository.GetListCriteria(criteria);
> >            }
> >            catch (Exception ex)
> >            {
> >                Log.Error(AppStrings.EventNatureFornosConsumo,
> > LibStrings.MessageExceptionQuery, ex);
> >                throw new LoggedException(ex.Message);
> >            }
> >        }
>
> > El error que me devuelve a los registros es la siguiente:
>
> > 21:29:36.997 ERROR [AbstractBatcher.ExecuteReader] nHibernate: Could
> > not execute query: SELECT this_.Id_Roll_Shop_Data as Id1_19_0_,
> > this_.Mill as Mill19_0_, this_.N2_Send as N3_19_0_, this_.Roll_Id as
> > Roll4_19_0_, this_.Stand_Id as Stand5_19_0_, this_.Roll_Type as
> > Roll6_19_0_, this_.Grinding_Flag as Grinding7_19_0_,
> > this_.Planned_Roll_Pos as Planned8_19_0_, this_.Roll_Class as
> > Roll9_19_0_, this_.Roll_Property_Class as Roll10_19_0_,
> > this_.Shape_Code as Shape11_19_0_, this_.Related_Roll_Id as
> > Related12_19_0_, this_.Roll_Pair_No as Roll13_19_0_,
> > this_.Roll_Diameter as Roll14_19_0_, this_.Shim_Plate_Thick as
> > Shim15_19_0_, this_.Initial_Temp as Initial16_19_0_, this_.Crown as
> > Crown19_0_ FROM Roll_Shop_Data this_ WHERE this_.Mill = :p0
> > System.NotSupportedException: Unsupported Oracle data type 100
> > encountered.
>
> > Mi pregunta es: Por lo que he investigado, este error que ocurrió con
> > la versión de Oracle 9g, pero mi versión actual de Oracle es 10g. Cómo
> > utilizar NHibernate y Oracle, ¿cómo puedo actualizar esta DLL? Debe
> > actualizar el archivo DLL?
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > NHibernate-Hispano <at> googlegroups.com
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Edson Vizcaino | 2 Feb 01:04
Picon

Mapping de ILIST o DICTIONARY

Hola a todos!

Estoy empezando a usar NH y en una clase tengo atributos de tipo IList<string>  y Dictionary<EnumTipo,Double>, mi inquietud va dirigida a si se es posible mapear este tipo de atributos y como hacerlo??

Gracias por sus comentarios 

Saludos,
Edson V.

--
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
Picon
Gravatar

Re: Error al consultar los datos BINARY_FLOAT Nhibernate Oracle. NET

Sí, allí estaba yo:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory name="System.PCT.Kernel.Domain">
      <property
name="connection.provider">NHibernate.Connection.DriverConnectionProvider</
property>
      <property name="dialect">NHibernate.Dialect.Oracle10gDialect</
property>
      <property
name="connection.driver_class">NHibernate.Driver.OracleClientDriver</
property>
      <property name="connection.connection_string">
        User Id=pct_pro;
        Password=pct_pro;
        Data Source=localhost/XE;
      </property>
      <property name="hbm2ddl.auto">none</property>
      <property name="show_sql">true</property>
      <property name="adonet.batch_size">100</property>
      <property name="command_timeout">10</property>
      <property
name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle</property>
      <property
name="current_session_context_class">uNhAddIns.SessionEasier.Conversations.ThreadLocalConversationalSessionContext,
uNhAddIns</property>
      <mapping assembly="PCT.Repository" />
      <mapping assembly="GLib.GMaintenance.Repository" />
      <mapping assembly="GLib.GSecurity.Repository" />
    </session-factory>
  </hibernate-configuration>

On 1 feb, 13:11, José F. Romaniello <jfromanie...@gmail.com> wrote:
> Tenes que setear el dialecto:
> NHibernate.Dialect.Oracle10gDialect
>
> En la configuración...
>
> saludos,
>
> 2012/1/31 Gustavo Souza Gonçalves <gustavosouzagoncal...@gmail.com>
>
>
>
>
>
>
>
> > Buenos días a todos!
> > Estamos desarrollando una aplicación que utiliza NHibernate uNhAddIns,
> > y el modelo MVVM, crear una nueva tabla, la tabla y tener la
> > BINARY_FLOAT tipo. Cualquier otra consulta a la base de datos funciona
> > muy bien, pero esto, al intentar obtener el resultado, me devuelve el
> > error en VisualStudio. Cuando hago la misma consulta en la base de
> > datos, la consulta funciona perfectamente.
>
> > Aquí está mi table:
>
> > CREATE TABLE pct_pro.Roll_Shop_Data (
> >       NÚMERO Id_Roll_Shop_Data (20,0) NOT NULL,
> >       Mill VARCHAR2 (2) NOT NULL,
> >       N2_Send NCHAR (1) no es nula,
> >       Roll_Id VARCHAR2 (20) NOT NULL,
> >       Stand_Id VARCHAR2 (2) NOT NULL,
> >       Roll_Type VARCHAR2 (3),
> >       Grinding_Flag número (10),
> >       Planned_Roll_Pos CHAR (1),
> >       Roll_Class número (10),
> >       Roll_Property_Class número (10),
> >       Shape_Code número (10),
> >       Related_Roll_Id VARCHAR2 (20),
> >       Roll_Pair_No VARCHAR2 (20),
> >       Roll_Diameter BINARY_FLOAT,
> >       Shim_Plate_Thick BINARY_FLOAT,
> >       Initial_Temp BINARY_FLOAT,
> >       Corona BINARY_FLOAT,
> >       PRIMARY KEY (Id_Roll_Shop_Data)
> >    );
>
> > Aquí está mi consulta:
>
> >     [PersistenceConversation(ConversationEndMode = EndMode.End)]
> >        public IEnumerable<RollShopData> ConsultarDadosOficina(String
> > codigoLaminador)
> >        {
> >            try
> >            {
> >                var criteria = DetachedCriteria.For<RollShopData>()
> >                    .Add(Restrictions.Eq("Mill", codigoLaminador));
>
> >                return
> > rfRollShopDataRepository.GetListCriteria(criteria);
> >            }
> >            catch (Exception ex)
> >            {
> >                Log.Error(AppStrings.EventNatureFornosConsumo,
> > LibStrings.MessageExceptionQuery, ex);
> >                throw new LoggedException(ex.Message);
> >            }
> >        }
>
> > El error que me devuelve a los registros es la siguiente:
>
> > 21:29:36.997 ERROR [AbstractBatcher.ExecuteReader] nHibernate: Could
> > not execute query: SELECT this_.Id_Roll_Shop_Data as Id1_19_0_,
> > this_.Mill as Mill19_0_, this_.N2_Send as N3_19_0_, this_.Roll_Id as
> > Roll4_19_0_, this_.Stand_Id as Stand5_19_0_, this_.Roll_Type as
> > Roll6_19_0_, this_.Grinding_Flag as Grinding7_19_0_,
> > this_.Planned_Roll_Pos as Planned8_19_0_, this_.Roll_Class as
> > Roll9_19_0_, this_.Roll_Property_Class as Roll10_19_0_,
> > this_.Shape_Code as Shape11_19_0_, this_.Related_Roll_Id as
> > Related12_19_0_, this_.Roll_Pair_No as Roll13_19_0_,
> > this_.Roll_Diameter as Roll14_19_0_, this_.Shim_Plate_Thick as
> > Shim15_19_0_, this_.Initial_Temp as Initial16_19_0_, this_.Crown as
> > Crown19_0_ FROM Roll_Shop_Data this_ WHERE this_.Mill = :p0
> > System.NotSupportedException: Unsupported Oracle data type 100
> > encountered.
>
> > Mi pregunta es: Por lo que he investigado, este error que ocurrió con
> > la versión de Oracle 9g, pero mi versión actual de Oracle es 10g. Cómo
> > utilizar NHibernate y Oracle, ¿cómo puedo actualizar esta DLL? Debe
> > actualizar el archivo DLL?
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > NHibernate-Hispano <at> googlegroups.com
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Tomas | 3 Feb 16:05
Picon

exception {"An association from the table mntusers refers to an unmapped class: PigCsharp.Entities.mntdepartment"} System.Exception {NHibernate.MappingException}

Hola a tod <at> s.

Recurro ante uds haber si me pueden ayudar porque llevo todo el dia
con este error y no se porque me lo da.

Fichero clase

mntusers.cs

        public virtual string id { get; set; }

        public virtual string name{ get; set; }
        public virtual int operationsSpending { get; set; }
        public virtual string pc { get; set; }
        public virtual int correctInput { get; set; }
        public virtual int incorrectInput { get; set; }
        public virtual DateTime lastDateInput { get; set; }
        public virtual string bussines { get; set; }

        public virtual string accounting { get; set; }
        public virtual mntdepartment department { get; set; }

mntdepartment .cs

        public virtual  int id { get; set; }
        public virtual string description { get; set; }

ficheros hbm

mntusers.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="PigCsharp" namespace="PigCsharp.Entities">

	<class name="mntusers">
		<id name="id" type="String">
			<column name="users" />
			<!--generator class="native" /-->
		</id>
		<!--property name="users" type="String" not-null="true"/-->

		<property name="name" type="String" not-null="true"/>
		<property name="operationsSpending" type="int" not-null="true"/>
		<property name="pc" type="String" not-null="true"/>
		<property name="correctInput" type="int" not-null="true"/>
		<property name="incorrectInput" type="int" not-null="true"/>
		<property name="lastDateInput" type="date" not-null="true"/>
		<property name="bussines" type="String" not-null="true"/>

		<many-to-one name="department"
					 class="mntdepartment"
					 column="departmentId"
					 cascade="all"/>

		<property name="accounting" type="String" not-null="true"/>

	</class>
</hibernate-mapping>

mntdepartment.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="PigCsharp" namespace="PigCsharp.Entities">
	<class name="mntdepartment">
		<id name="id" column ="mntdepartmentId" type="int">
			<generator class="native"/>
		</id>
		<property name="description" type="String" not-null="true"/>
	</class>
</hibernate-mapping>

Saludos y muchas gracias

--

-- 
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano


Gmane