2010-03-10 6 views
15

Hola Tengo una Subclase que necesita abarcar múltiples valores discriminantes.Hibernación Subclase que tiene múltiples valores de discriminador

algo como:

@DiscriminatorValue (valor = "ACT", "DNR", "ATT")

me haría perfecto.

tenemos los datos existentes en varios discriminadores se pueden asignar a una clase (ya que son tipos similares de lo que nuestro sistema considerará la misma cosa)

Respuesta

21

Puede utilizar DiscriminatorFormula:

// Base class 
@DiscriminatorFormula("case when value in ('ACT','DNR','ATT') then 1 
    when 'OTH' then 2 else 3 end") 

// Subclass 
@DiscriminatorValue("1") // maps to ACT, DNR, ATT 
+0

Perfecto, exactamente lo que OP pidió. –

+0

Gracias a un millón de Brian. Estaba haciendo lo mismo pero colocando @DiscriminatorFormula en la subclase. (Duh) Esto está funcionando perfectamente –

+0

Bueno. No puedo encontrar ninguna documentación o ejemplo sobre '@ DiscriminatorFormula'. ¿Cuándo puedo encontrarlo? –

3

Una subclase tiene exactamente 1 valor discriminador.

Puede agregar subclases adicionales bajo la subclase existente para los valores discriminadores adicionales. Las subclases no necesitan tener propiedades o comportamiento adicionales.

+0

correcta, pero ese valor se puede obtener a través de una fórmula que funciona en varios valores, por ejemplo, '' (ver [enlace] (http://www.nhforge.org/doc/nh/en/#mapping-declaration-discriminator)) NOTA: Estoy incluyendo esto porque quería saber cómo hacerlo dentro del Hibernate XML, y esto puede ayudar a alguien en el futuro. – barclay

Cuestiones relacionadas