Вы находитесь на странице: 1из 11

Carlos Dillon

Extensiones JPA (TopLink)


@ObjectTypeConverter
@ObjectTypeConverters
@TimeOfDay
1. @TimeOfDay: Definición

@TimeOfDay especifica un tiempo específico del día usando una instancia


Calendar que será usada con una anotación @Cache.
1. @TimeOfDay: Elementos
Annotation Element Description Default
1. @TimeOfDay: Ejemplo
11g introdujo @Cache y @TimeOfDay .

En el siguiente ejemplo, la entidad ‘Empleado’ es configurada con una caché ‘HardWeak’ y una
política de expiración que invalidará todas las instancias a las 1 A.M. La expiración de TimeOfDay
es útil en sistemas con alimentación de datos regulares.

Otra opción de epiración es soportada por @Cache. Con la política CHECK_DATABASE, la base
de datos chequeará si el objeto a persistir ya existe en la base de datos.
1. @TimeOfDay: Ejemplo
@Entity

@Cache(type=CacheType.HARD_WEAK, expiryTimeOfDay=@TimeOfDay(hour=1))

@ExistenceChecking(ExistenceType.CHECK_DATABASE)

public class Employee implements Serializable {

...
2. @ObjectTypeConverter: Definición

La anotación @ObjectTypeConverter especifica una instancia que un


número fijado de valor(es) de base de datos a valores de objeto Java
durante la lectura/escritura de los atributos mapeados.
2. @ObjectTypeConverter: Elementos
Annotation Element Description Default
2. @ObjectTypeConverter: Ejemplo
public class Employee implements Serializable{
...
@ObjectTypeConverter (
name="genderConverter",
dataType=java.lang.String.class,
objectType=java.lang.String.class,
conversionValues={
@ConversionValue(dataValue="F", objectValue="Female"),
@ConversionValue(dataValue="M", objectValue="Male")}
)
@Convert("genderConverter")
public String getGender() {
return gender;
}
...
}
3. @ObjectTypeConverters: Definición

La anotación @ObjectTypeConverters nos ayuda a definir multiple item de


@ObjectTypeConverter
2. @ObjectTypeConverters: Elementos

Annotation Element Description Default

ObjectTypeConverter (Required) An array of


@ObjectTypeConverter
2. @ObjectTypeConverters: Ejemplo
@Entity(name="Employee")
@Table(name="CMP3_FA_EMPLOYEE")
@ObjectTypeConverters({
@ObjectTypeConverter(
name="sex",
dataType=String.class,

objectType=org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee.Gen
der.class,
conversionValues={
@ConversionValue(dataValue="F", objectValue="Female"),
@ConversionValue(dataValue="M", objectValue="Male")
}
)
})