2010-06-18 18 views
6

Me gustaría agregar un objeto de valor a una clase mapeada donde se fija una columna dependiendo de la clase que contiene el componente. ¿Cómo puedo hacer algo como esto?Constante en Hibernate Mapeo de archivos

<component name="aComponent"> 
    <property name="abc" column="cde"/> 
    <property name="xyz" value="FIXED"/> 
</component> 

Desafortunadamente, el atributo de valor no existe. ¿Hay alguna otra forma de aplicar un valor constante a la propiedad?

Gracias de antemano.

Respuesta

4

Debe usar una fórmula, p.

<property name="xyz" formula="1" type="big_decimal"/> 

De Java Persistence with Hibernate, ch. 4.4.1:

La fórmula SQL dado se evalúa cada vez que la entidad se recupera de la base de datos (y no en cualquier otro momento, por lo que el resultado puede ser obsoleta si otros propiedades se modifican). La propiedad no tiene un atributo de columna (o subelemento) y nunca aparece en SQL INSERT o UPDATE, solo en SELECT s. Las fórmulas pueden hacer referencia a las columnas de la tabla de la base de datos, pueden llamar a funciones SQL, e incluso pueden incluir subselecciones SQL. La expresión SQL se pasa a la base de datos subyacente tal como está; esta es una buena oportunidad para enlazar su archivo de mapeo a un producto de base de datos particular , si no tiene cuidado y depende de operadores operadores o palabras clave.

Cuestiones relacionadas