Fabio Maulo | 1 Jan 20:01
Picon
Gravatar

Re: Definir Primary Key

Tambien está el video de la VAN sobre ORM:

http://altnet-hispano.pbworks.com/van-2009-09-19-introduccion-orm

El 28 de diciembre de 2009 22:34, José F. Romaniello <jfromaniello <at> gmail.com> escribió:
En ese ejemplo ya estas viendo por que no esta tan bueno. T3 tiene una clave primaria compuesta por 3 campos!, imaginate si en algún lado tenes que guardar una relación a T3, y fuera parte de su clave primaria. Necesitarías 4 campos.... se empieza a poner negro. Otra cosa mala que tienen las claves compuestas es que tienden a tener significado en el dominio, y toda cosa con significado en el dominio es susceptible a cambios.

Al ya estar utilizando GUID, guid es buena como POID. 

Hay mucha información al respecto dando vuelta sobre este tema, lo oficial que te puedo indicar es la documentación de nhibernate:

El "por que no es tan bueno" oficial esta aca:



El 28 de diciembre de 2009 16:07, Claudiño <valdes.claudio <at> gmail.com> escribió:

Hola a todos

Estoy desarrollando un sistema en donde tengo algo parecido a lo
siguiente

T1
---------------
PKT1
DescT1

T2
---------------
PKT1
PKT2
DescT2

T3
---------------
PKT1
PKT2
PKT3
DescT3

Los campos PKT1, PKT2 y PKT3 son generados con GUID

Tengo el problema para definir la primary key, ya que de acuerdo a la
documentación de NHibernate, al definir en la tabla T2 una clave
compuesta por PKT1 y PKT2 y en la tabla T3 una clave compuesta por
PKT1, PKT2 y PKT3 estaría utizando un esquema legacy, pero es como
siempre he trabajado modelando bases de datos.

La otra alternativa sería definir las siguientes claves

T1 clave principal PKT1
T2 clave principal PKT2
T3 clave principal PKT3

y como son GUID nunca se duplicarían, pero no es la forma en que esto
acostumbrado a modelar las bases de datos

Agradecería sus comentarios al respecto

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



--
Fabio Maulo

--
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
Fabio Maulo | 1 Jan 20:45
Picon
Gravatar

Re: Re: Alguna sugerencia para hacer la siguiente operacion

Siguimos con el mismo problema ya que lo unico que cambió fue la sintaxis pero seguis mostrando e informandonos los mismos muy pocos conceptos y reteniendo lo mas importantes... pero bueno ya que así estamos tendremos que bancarnos el TOP SECRET y darte la respuesta correspondiente.


Parece que el resultado de la consulta no va en un VO un DTO o algo por el estilo y que ya sabes como hacerlo en SQL;
NH te permite usar SQL :
Con la implementación de un IResultTransformer podes transformar el resultado en una instancia de una clase usando el metodo SetResultTransformer disponible sea para ICriteria que para IQuery.

P.S. Sin conocer las relaciones es dificil relacionar, en el aire, los fields por su nombre. Con lo que pasaste parece que necesites la suma entre cantidad-perros + cantidad-manzanas... buesque acá http://www.mercadodeliniers.com.ar/ pero no encuentro algo que lo relacione... me suena a que falta alguna clase...

El 28 de diciembre de 2009 18:45, Diego <diegoperlman <at> gmail.com> escribió:
Perdon por la demora en enviar la estructura de las clases en
cuestion.
Las clases serian las siguientes:

public class Pedido
{
    private Int32 _id;
    private Avio _avio;
    private Int32 _cantidad;
    ...
}

public class Stock
{
    private Int32 _id;
    private Avio _avio;
    private Int32 _cantidad;
    ...
}

public class Avio
{
    private Int32 _id;
    private String _nombre;
    ...
}

Nuevamente la pregunta seria como hacer un SUM(cantidad) de la UNION
de las dos clases agrupadas por Avio.


On 22 dic, 19:03, Fabio Maulo <fabioma... <at> gmail.com> wrote:
> Pasandonos las tablas solo te podemos devir como hacerlo en SQL.
> Para decirte como hacerlo en NH necesitamos las clases de las entidades.
>
> El 22 de diciembre de 2009 16:54, Diego <diegoperl... <at> gmail.com> escribió:
>
>
>
>
>
> > Hola a todos.
> > Tengo el siguiente problema y por la poca experiencia que tengo en
> > nhibernate no lo se resolver.
> > Les detallo el problema para ver si alguien me puede sugerir alguna
> > solucion:
> > Tengo dos tablas:
>
> > Tabla PEDIDOS
> > -------------------
> > idAvio
> > cantidad
>
> > Tabla STOCK
> > --------------------
> > idAvio
> > cantidad
>
> > El problema es el siguiente:
> > deseo hacer un SUM(cantidad) de la UNION de las dos tablas GROUP BY
> > idAvio.
> > En SQL tengo claro como hacerlo, ahora el tema es con NH...
> > tengo que crear una clase especial???
> > como se maneja esto???
> > algun articulo que explique algo de esto y me puedan pasar para
> > leer???
>
> > Felices fiestas para todos.
> > Gracias
> > Diego
>
> > --
> > 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
>
> --
> Fabio Maulo- 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



--
Fabio Maulo

--
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
Edgar Ramos | 4 Jan 23:41
Picon

Validar Entidades

Saludos a todos y que tengan un feliz anio

Planteo mi duda a continuacion, nhibernate tiene tools adicionales
para validar mis entidades, alguien puede ayudarme con un link para
estudiar ejemplos, cualquier documentacion es bienvenida

saludos

--

-- 
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: Validar Entidades

NHibernate validator, te recomiendo leer los posts de Fabio Maulo con la etiqueta "validator" (empezando por los más viejos





El 4 de enero de 2010 19:41, Edgar Ramos <eramosecua <at> gmail.com> escribió:
Saludos a todos y que tengan un feliz anio

Planteo mi duda a continuacion, nhibernate tiene tools adicionales
para validar mis entidades, alguien puede ayudarme con un link para
estudiar ejemplos, cualquier documentacion es bienvenida


saludos

--
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
Felipe | 4 Jan 16:54
Picon

Recuperar entidades como objetos transientes o "detached". Es posible?. Mejora el Rendimiento?

Necesito desplegar una grilla, la cual actualmente estoy transformando
de un grafo de objetos persistentes a DTOs.
Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
grilla es una instancia, e incluso se combina una fila con celdas que
provienen de otros objetos persistentes. Dado lo anterior hay que
hacer un manejo importante a nivel de DTO, por lo cual armo algunos
Dictionary para mejorar la eficiencia y además dado que la grilla es
jerárquica.

Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
también el cierre de la Sesión.

El problema es que dado que la estructura es compleja, el constructor
de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
control (persistence manager), de este modo usa las entidades como
DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
carga.

La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?

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

Gustavo Ringel | 5 Jan 07:50
Picon
Gravatar

Re: Recuperar entidades como objetos transientes o "detached". Es posible?. Mejora el Rendimiento?

En este caso estas obligado a usar DTO's? porque no usas las entidades del modelo con Fetch bien seteado para ese tipo de trabajo?

En esta lista se ha discutido el tema, hay quienes hacen DTO solo si es absolutamente necesario y quienes lo hacemos casi por defecto, pero hay casos como este donde no parece la mejor alternativa.

Para cargar 10.000 objetos para solo lectura probablemente veas mejora tambien usando IStatelessSession

Gustavo.

2010/1/4 Felipe <felipe.martin <at> gmail.com>
Necesito desplegar una grilla, la cual actualmente estoy transformando
de un grafo de objetos persistentes a DTOs.
Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
grilla es una instancia, e incluso se combina una fila con celdas que
provienen de otros objetos persistentes. Dado lo anterior hay que
hacer un manejo importante a nivel de DTO, por lo cual armo algunos
Dictionary para mejorar la eficiencia y además dado que la grilla es
jerárquica.

Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
también el cierre de la Sesión.

El problema es que dado que la estructura es compleja, el constructor
de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
control (persistence manager), de este modo usa las entidades como
DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
carga.

La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?

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

--
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
Carlos Peix | 5 Jan 11:17
Picon

Re: Recuperar entidades como objetos transientes o "detached". Es posible?. Mejora el Rendimiento?

Hola Felipe,


Ademas de las recomendaciones de Gustavo me gustaria hacerte otra que, a mi juicio, los desarrolladores siempre pasamos por alto. No sera posible simplificar esa grilla dividiendo su funcionalidad en varias pantallas?

Muchas veces los desarrolladores cedemos ante la tentacion de colocar mucha funcionalidad en una sola pantalla pero eso puede comprometer la escalabilidad de esta aplicacion, sobre todo si estas recuperando 10.000 objetos desde la base de datos.

Desconozco el patron de uso de tu aplicacion y de esa pantalla en particular pero definitivamente es un punto a controlar (medir) en cuanto para la escalabilidad.

----------------------------------
Carlos Peix

2010/1/4 Felipe <felipe.martin <at> gmail.com>
Necesito desplegar una grilla, la cual actualmente estoy transformando
de un grafo de objetos persistentes a DTOs.
Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
grilla es una instancia, e incluso se combina una fila con celdas que
provienen de otros objetos persistentes. Dado lo anterior hay que
hacer un manejo importante a nivel de DTO, por lo cual armo algunos
Dictionary para mejorar la eficiencia y además dado que la grilla es
jerárquica.

Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
también el cierre de la Sesión.

El problema es que dado que la estructura es compleja, el constructor
de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
control (persistence manager), de este modo usa las entidades como
DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
carga.

La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?

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

--
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
Gustavo Ringel | 5 Jan 12:47
Picon
Gravatar

Re: Recuperar entidades como objetos transientes o "detached". Es posible?. Mejora el Rendimiento?

El problema de esos pedidos quizas venga de aplicaciones que se migran de cuando se trabaja con sistemas conectados...hacer una grilla de 10.000 continuamente conectado contra el servidor de base de datos, era tambien malo, pero posible...

El hecho de que era tan malo es lo que hizo que casi todas las estrategias de acceso a datos pasaran a ser desconectadas.

Hay grillas como al de DevExpress que tienen modo de conexion directa a la base para quienes quieren usar todavia la vieja moda.

Pero a mi gusto como dice Carlos, la direccion tiene que ser mas bien rediseñar...

2010/1/5 Carlos Peix <carlos.peix <at> gmail.com>
Hola Felipe,

Ademas de las recomendaciones de Gustavo me gustaria hacerte otra que, a mi juicio, los desarrolladores siempre pasamos por alto. No sera posible simplificar esa grilla dividiendo su funcionalidad en varias pantallas?

Muchas veces los desarrolladores cedemos ante la tentacion de colocar mucha funcionalidad en una sola pantalla pero eso puede comprometer la escalabilidad de esta aplicacion, sobre todo si estas recuperando 10.000 objetos desde la base de datos.

Desconozco el patron de uso de tu aplicacion y de esa pantalla en particular pero definitivamente es un punto a controlar (medir) en cuanto para la escalabilidad.

----------------------------------
Carlos Peix

2010/1/4 Felipe <felipe.martin <at> gmail.com>
Necesito desplegar una grilla, la cual actualmente estoy transformando

de un grafo de objetos persistentes a DTOs.
Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
grilla es una instancia, e incluso se combina una fila con celdas que
provienen de otros objetos persistentes. Dado lo anterior hay que
hacer un manejo importante a nivel de DTO, por lo cual armo algunos
Dictionary para mejorar la eficiencia y además dado que la grilla es
jerárquica.

Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
también el cierre de la Sesión.

El problema es que dado que la estructura es compleja, el constructor
de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
control (persistence manager), de este modo usa las entidades como
DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
carga.

La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?

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

--
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
Juan | 5 Jan 14:12
Picon

Re: Recuperar entidades como objetos transientes o "detached". Es posible?. Mejora el Rendimiento?

Si estas haciendo la transformacion de entidades a dtos, en esencia
estas obteniendo un result rest. Puede que te convenga tener una vista
en la base de datos y hacer el query directo ahi.

10000 objectos? necesitas desplegarlos todos al mismo tiempo? podrias
reducir la cantidad, capaz, con paging.

Si tu modelo lo amerita, no veo objeciones el porque no podas utilizar
las entidades en lugar de los dto en tu grilla. A no ser que tengas
una capa en medio del cliente y el service, algo tipo wcf... en ese
caso, siemre podes lograrlo siempre y cuando tus intenciones no sean
de hacer mano de lazy loading...

On Jan 4, 10:54 am, Felipe <felipe.mar...@gmail.com> wrote:
> Necesito desplegar una grilla, la cual actualmente estoy transformando
> de un grafo de objetos persistentes a DTOs.
> Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
> grilla es una instancia, e incluso se combina una fila con celdas que
> provienen de otros objetos persistentes. Dado lo anterior hay que
> hacer un manejo importante a nivel de DTO, por lo cual armo algunos
> Dictionary para mejorar la eficiencia y además dado que la grilla es
> jerárquica.
>
> Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
> la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
> cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
> también el cierre de la Sesión.
>
> El problema es que dado que la estructura es compleja, el constructor
> de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
> de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
> control (persistence manager), de este modo usa las entidades como
> DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
> carga.
>
> La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?
>
> 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

Edgar Ramos | 5 Jan 15:04
Picon

Re: Validar Entidades

Listo gracias empezaré a revizar

El día 4 de enero de 2010 17:44, José F. Romaniello
<jfromaniello <at> gmail.com> escribió:
> NHibernate validator, te recomiendo leer los posts de Fabio Maulo con la
> etiqueta "validator" (empezando por los más viejos
> http://fabiomaulo.blogspot.com/search/label/Validator
>
>
> El 4 de enero de 2010 19:41, Edgar Ramos <eramosecua <at> gmail.com> escribió:
>>
>> Saludos a todos y que tengan un feliz anio
>>
>> Planteo mi duda a continuacion, nhibernate tiene tools adicionales
>> para validar mis entidades, alguien puede ayudarme con un link para
>> estudiar ejemplos, cualquier documentacion es bienvenida
>>
>>
>> saludos
>>
>> --
>> 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


Gmane