Gustavo Ringel | 19 Aug 22:28

leer de access

Hi. En un proyecto el cliente nos manda los datos en un archivo de Access...
El sistema debe tomar los datos de ese access y una vez leidos paso a trabajar en SQL Server como dios manda.

Ahora mi yo interno me dice que mas me vale hacer simples IDbConnections + IDataReaders...leer con eso y listo.

Alguien tiene algo para decir a favor de NHibernate en este caso? El tema de manejar multiples bases de datos, crear mappings, etc, para un proceso que se va a hacer unas 12 a 15 veces en toda la vida del programa (ya que es la cantidad de lotes de trabajo que mandaran) no parece tener tanto sentido...

Gracias.

Gustavo.

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

GaBy | 19 Aug 20:59

ERROR MAPEO NO REALIZA UPDATE


Hola

Mi problema es que al momento que deseo hacer una actualizacion de
datos por el mapeo que tengo me sele este error.

object references an unsaved transient instance - save the transient
instance before flushing: com.quemen.app.sarp.adm.vo.TipoFamiliaVo;
nested exception is org.hibernate.TransientObjectException: object
references an unsaved transient instance - save the transient instance
before flushing: com.quemen.app.sarp.adm.vo.TipoFamiliaVo

Lo que intento realizar es lo siguiente, cuento con dos tablas de las
cuales de una solo traigo una descripcion (TipoFamiliaVo) y en la otro
tabla inserto modifico elimino, etc...(FamiliasVo).

En la tabla FamiliasVo solo traigo el id de TipoFamiliaVo pero cuando
deseo hacer una modificacion se sale el error que ya puse.

Mi mapeo:

<many-to-one name="tipoFamiliaVo"
			entity-name="com.quemen.app.sarp.adm.vo.TipoFamiliaVo"
fetch="select"
			lazy="false" insert="false">
			<column name="idtipofamilia" />
		</many-to-one>

Si alguien me entendio y me puede ayudar se lo voy agradecer mucho.

--~--~---------~--~----~------------~-------~--~----~
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 Ignacio Lalla | 19 Aug 20:33

Inconveniente con Mapping y SchemaExport

Hola gente,

Les quiero hacer una consulta.
Actualmente estoy creando la base de datos con SchemaExport a partir de los archivos de mapeo, y me encuentro con un problema...

Para explicarles un poco el dominio...
Existen las entidades Template y Report que pueden ser taggeadas... (se le puede poner una palabra que ayude a identificarlos...)

Entonces, además de tener una tabla para Templates y otra para Reports, tengo una tabla "Tag" y luego una tablas "TemplateTags" y "ReportTags" que hacen referencia a los Tags y a un Template o un Report respectivamente.
Entonces, los tags son colecciones Many-to-Many.

Los ids de las tablas Template y Report son CHAR(36) especificados con sql-type.

El tema es que SchemaExport crea bien las tablas Template, Report, Tag y ReportTags (especificando bien el tipo de dato de ReportId a CHAR(36), como lo especifica el archivo de mapeo), pero no pasa lo mismo con TemplateTags... ya que templateId lo deja en VARCHAR(255) como lo hace con cualquier String por defecto, sin tener en cuenta lo que especifiqué el la parte de "column" del hbm....
El problema que trae esto, es que en algunos Motores de Base de Datos no se puede crear un Foreign Key si no es del mismo tipo de dato... como pasa en SQL Server (con MySQL y PostgreSQL no pasa nada). Entonces, la creación de las tablas termina fallando...

Saben por qué es que no crea bien la tabla TemplateTags, cuando ReportTags sí la hace bien (veo los mapeos iguales...)??

Les copio abajo el hbm de los tags y la parte de Template y Report...


El archivo de mapeo de los Tags...

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="Namespace.TagInfo, Namespace" table="tags" lazy ="false">
       
    <id
      name="TagID"
      type ="int"
      column="tagID">
      <generator class="native"></generator>
    </id>
       
    <property
      name="Name"
      column="name"/>
       
    <property
      name="Rank"
      column="rank"/>

    <set
      name="ITemplate"
      inverse="true"
      table ="templatetags"
      lazy="false">
      <key column ="tag" />
      <many-to-many class="Namespace.TemplateInfo, Namespace">
        <column name="templateId"
                sql-type="char(36)" />
      </many-to-many>
    </set>
   
    <set
      name="IReport"
      inverse="true"
      table ="reporttags"
      lazy="false">
      <key column ="tag" />
      <many-to-many class="Namespace.ReportInfo, Namespace">
        <column name="reportId"
                sql-type="char(36)" />
      </many-to-many>
    </set>   
    </class>
</hibernate-mapping>


La parte de Template que hace referencia a los tags y el Id especificando el sql-type

<id
      name="TemplateUID"
      type="string">
      <column name="templateUID"
              sql-type="char(36)" />
      <generator class ="assigned" />
    </id>

 <set
      name="ITag"
      table ="templatetags"
      cascade="save-update"
      lazy="false">
      <key column ="templateId"/>
      <many-to-many class="Namespace.TagInfo, Namespace" column ="tag"/>
    </set>

La parte de Report con lo mismo...

<id
      name="ReportUID"
      type ="string">
      <column name="reportUID"
              sql-type="char(36)" />
      <generator class ="assigned" />
    </id>

<set
      name="ITag"
      table ="reporttags"
      cascade ="save-update"
      lazy="false">
      <key column="reportId"/>
      <many-to-many class="Namespace.TagInfo, Namespace" column ="tag"/>
    </set>



Cualquier cosa, si no fui muy claro... trato de abstraerlo un poco más o detallar más...

Gracias!
Salu2,
Juan


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

Jose Fabricio Rojas | 19 Aug 04:08

Ordenar Listas


Hola gente,
Bueno mi problemas es el siguiente , estoy generando un menu
dinamico(desde la bd) , me hice una demo con un datatable y funciona
normal, pero la idea es hacerlo en NH. mi problema es que las listas
de objetos que obtengo no las devuelve ordenadas, en mi consulta HQL,
le hago un order by , pero aun asi no la devuelve ordenada...
la consulta es la siguiente: " select distinct o from UserRolEntity ur
join ur.ROL r, RolPermissionEntity p join p.OBJECTS o where
p.ROL.N_ROLE =:N_ROLE and ur.USER.ID_USER =:ID_USER order by
o.ID_OBJECT"
mi algoritmo de generacion de menu , es recursivo y tengo un campo
padre y uno hijo , pero para hacer mis iteraciones necesito tener mi
fuente de datos ordenadas , Hay una forma mas explicita de traer mi
lista de objetos ordenados?
Muchas Gracias.
Jose Fabricio Rojas
http://devsofx.wordpress.com

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

Germán Schuager | 18 Aug 22:52

Propiedad ISet<> de solo lectura


Buenas gente, quería ver si me pueden aclarar la siguiente duda.
Estoy implementando un modelo jerarquico con NH donde tengo varias
Categorías y cada una de estas puede terner otras Categorías anidadas.

La clase Categoria es algo así:

public class Categoria {

	private ISet<Categoria> children;

	public Categoria()
	{
		children = new HashedSet<Categoria>();
	}

	public virtual int ID { get; private set; }
	public virtual string Nombre { get; set; }
	public virtual Categoria Parent { get; private set; }

	public virtual ISet<Categoria> Children
	{
		get { return new ImmutableSet<Categoria>(children); }
		private set { children = value; }
	}

	public virtual void AddChild(Categoria categoria) { ... }

	public virtual void RemoveChild(Categoria categoria) { ... }

}

El mapeo de esta clase es el siguiente:

  <class name="Categoria" table="Categoria">
    <id name="ID" column="CategoriaID" type="Int32" unsaved-value="0">
      <generator class="identity" />
    </id>
    <property name="Descripcion" column="Descripcion" type="String"
length="100" />
    <many-to-one name="Parent" column="ParentCategoriaID"
lazy="false" />
    <set name="Children" cascade="all" lazy="false">
      <key column="ParentCategoriaID" />
      <one-to-many class="XYZ.Core.Entities.Categoria, XYZ.Core,
Version=0.1.0.30, Culture=neutral, PublicKeyToken=null" />
    </set>
  </class>

Como se ve, las propiedades Parent y Children son de solo lectura para
los clientes de la clase y solo se pueden modificar mediante llamadas
a AddChild y RemoveChild, el problema surge en que al persistir una
categoría usando NH, la propiedad children (que inicialmente era de
tipo HashedSet) se transforma en una instancia de PersistentGenericSet
que encapsula una instancia de ImmutableSet, por lo tanto, mi campo
privado children se vuelve de solo lectura, y cuando quiero usar el
método AddChild tira una excepción.

Alguien me puede explicar como puedo brindar acceso de solo lectura al
campo children y no tener este problema.

Una de las opciones que se me ocurrió es mapear directamente el campo
y no la propiedad, pero todavía no la he probado... hay alguna forma
de hacerlo mapeando la propiedad?

Desde ya, muchas gracias.

Saludos.

Germán Schuager
http://gschuager.blogspot.com
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Diego Ramirez | 16 Aug 18:53

Consulta de criterio


Hola todos como están? espero que bien.
Estoy desarrollando un sitio web y estoy adaptando la estructura del
artículo NHibernate Best Practices with ASP.NET de Billy McCafferty
que está alogado en Codeproject.
Hasta  ahora todo bién, mi consulta es la siguiente, según su criterio
tienen alguna crítica sobre este desarrollo o algun comentario útil?
(alguna experiencia si utilizaron una arquitectura similar etc).
Burrow mejora algo a este ejemplo??.
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
-~----------~----~----~----~------~----~------~--~---

Jose Fabricio Rojas | 16 Aug 17:45

Problema con consulta HQL


Hola Gente
tengo un problema , hice esta consulta en HQL
"select distinct o from UserRolEntity ur join ur.RolEntity r,
RolPermissionEntity p join p.ObjectEntity o where p.ID_ROLE =
r.ID_ROLE and ur.UserEntity.ID_USER =:ID_USER"
Lo tendria que hacer la consulta es traerme los objetos a los cuales
un usuario tiene permiso, para esto tien que recorrer , User,
UserRol(tabla intermedia),Rol,RolPermiso,Objeto
esta consulta la hice con el Analizador de consultas HQL que viene con
el Red Hat Developer , claro es para Java , pero el HQL que da como
resultado de mis consultas lo uso para NHibernate y me sirve.
quisiera saber si le pueden dar una revisada a la consulta para saber
en que me equivoco.
Muchas Gracias
Jose Fabricio Rojas
http://devsoftx.wordpress.com
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

one-to-one

Hola gente.

 

Jugando un poco con NH y mirando los SQL generados he visto que cuando tengo una relación one-to-one entre dos entidades y la relación es bidireccional, o sea, está en los dos hbm, cuando levanto una entidad, se genera un Select para obtener los datos de la entidad asociada al otro extremo de la relación.

 

Pongo un ejemplo para explicarme mejor.. (bueno.. el mismo de siempre.. ) Client, UserDetail, CompanyDetail.. Un cliente puede ser un usuario en solitario o una compañía.. por lo que UserDetail y CompanyDetail tendrán una relación one-to-one a Client. Hasta ahí sin problemas.

 

El problema surge en que posiblemente muchos otros procesos estarán asociados a Client y en su operación no necesitan saber si el cliente es un usuario o una compañía, de aquí que posiblemente no quiera que UserDetail o CompanyDetail sean cargados.

 

Leyendo un poco por internet, me encuentro que para este tipo de relaciones NH no crea un proxy, por lo tanto, no puede hacer lazy con los objetos que están dentro de la relación. La solución que proponían era convertir el one-to-one en Client en una relación many-to-one indicando que es unique. Lo probé y efectivamente, funciona.. NH crea el proxy y ya solo busca la información en el momento en que yo lo necesito.

 

Mi pregunta es: ¿Es esto correcto?.. Veo que podría tener un “pequeño” gran problema.. por ejemplo.. si el cliente es un usuario, la relación de Client con CompanyDetail no sería NULL pues contiene el proxy creado por NH.. y si trato de acceder a una propiedad de CompanyDetail el proxy me salta un error de “No row with the given identifier exists: X”

 

¿Qué recomiendan en estos casos?, ¿Algo que leer me va igual?

 

Salu2

Omar

 


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

manuonda | 15 Aug 17:34

Shardevelop y Nhibernate


queria saber si se puede usa nhibernate con shardevelop en esta ide ya
que es gratuita muchas gracias y si me pueden decir algun ejemplo de
como implementarlo

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

steven | 14 Aug 18:14

Problema Urgente


Tengo un problema con nhibernate, resulta que cuando utilizo el meto
Save() de ISession,
pasandole un objeto me genera un error diciendome "Unknow Entity Class
ContactCenter.Modelos.Usuario" y no me guarda en la base de datos.
aqui les dejo el hbm.xml de esta clase:

<?xml version="1.0" encoding="utf-8" ?>
	<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="ContactCenter" namespace="ContactCenter.Mapeo">
		<class name="Usuario" table="SECUSUARIO">
			<id name="idUsuario" column ="idUsuario" type="numeric(18,0)" not-
null="true" />
      <property name="nombre" column="nombre"  type="varchar(30)" not-
null="true"/>
      <property name="apellidos" column="apellidos"
type="varchar(30)" not-null="true"/>
			<property name="email" column="email"  type="varchar(50)" not-
null="true"/>
			<property name="telefono" column="telefono"  type="varchar(10)" not-
null="false"/>
      <property name="login" column="login"  type="varchar(10)" not-
null="true"/>
      <property name="password" column="password"  type="varchar(20)"
not-null="true"/>
      <many-to-one name="idRole" column="idRole" type="numeric(2,0)"/>
		</class>
	</hibernate-mapping>

cualquier ayuda de antemano 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
-~----------~----~----~----~------~----~------~--~---

Diego Ramirez | 14 Aug 07:05

Problemas con Burrow


Hola a todos, este es mi primera entrada y para empezar tal vez es una
duda un poco trivial.
Baje el ejemplo de NH Burrow y al probarlo me tiró un par de errores
Este es uno por ejemplo
Error	2	El tipo o el nombre del espacio de nombres 'Criterion' no
existe en el espacio de nombres 'NHibernate' (¿falta una referencia de
ensamblado?)	F:\Disco D\Laburo\Tutoriales\Hibernate and NHibernate
\NHibernate\Tools\NHibernateBurrows\NHibernate.Burrow-1.0-example
\BasicSampleWithBurrowAppBlock\BasicSample.Data\OrderDao.cs	4	18
BasicSample.Data

Quisiera saber si alguien utilizo estas librerías y si probó el
ejemplo. Estoy haciendo una aplicación web y el código que vi (pero
que no me anda me parecio muy bueno ^_^).
Saludos a todos.

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