ernestmartin | 1 Jul 14:05
Picon
Picon
Favicon

Composite-element con columnas con valor null dentro de un map es ignorado


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


Gmane