1 Jul 14:05
Composite-element con columnas con valor null dentro de un map es ignorado
ernestmartin <ernestmartin2000 <at> yahoo.es>
2009-07-01 12:05:31 GMT
2009-07-01 12:05:31 GMT
Hola a todos.
Estoy intentando crear una entidad que contenga propiedades con textos
en varios idiomas y para ello he creado una clase Product (la entidad)
con algo tan simple como esto:
-------------------------------------------------
public virtual string Name { get; set; }
public virtual IDictionary<Culture, CultureText> CultureTexts
{
get { return cultureTexts; }
protected set { cultureTexts = value; }
}
private IDictionary<Culture, CultureText> cultureTexts = new
Dictionary<Culture, CultureText>();
-------------------------------------------------
CultureText es la clase correspondiente al composite-element y su
contenido es este:
-------------------------------------------------
public virtual string Description { get; set; }
public virtual string OtherDetails { get; set; }
-------------------------------------------------
Culture contiene esto:
-------------------------------------------------
public virtual string Name { get; set; }
public virtual string NativeName { get; set; }
public virtual string DisplayName { get; set; }
-------------------------------------------------
y su mapeo es este:
-------------------------------------------------
<class name="Culture">
<id name="Id">
<generator class="native">
<param name="sequence">Culture_Sequence</param>
</generator>
</id>
<property name="Name" length="6" not-null="true" unique="true"
index="Culture_Name_Index" />
<property name="NativeName" length="150" not-null="true" />
<property name="DisplayName" length="150" not-null="true" />
</class>
-------------------------------------------------
Finalmente el mapeo de la entidad Product es este:
-------------------------------------------------
<class name="Product">
<id name="Id">
<generator class="native">
<param name="sequence">Product_Sequence</param>
</generator>
</id>
<property name="Name" length="150" not-null="true" />
<map name="CultureTexts" table="Product_i18n" lazy="false">
<key column="ProductId" not-null="true" />
<map-key-many-to-many column="CultureId" class="Culture" />
<composite-element class="ProductText">
<property name="Description" length="250" />
<property name="OtherDetails" length="250" />
</composite-element>
</map>
</class>
-------------------------------------------------
Todo funciona perfecto salvo cuando los valores de las propiedades del
composite-element son nulas. Cada elemento que tenga ambas propiedades
nulas es ignorado cuando se intenta obtener la entidad.
Investigando un poco me encontré con esto:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3836
Parece que es justo lo que me pasa a mi.
¿Alguien sabe si esto se está teniendo en cuenta en NHibernate?
La verdad es que soy nuevo en este mundo y ando un poco perdido.
Gracias de antemano.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
RSS Feed