Simplificar tus
entidades
Ahora puedes definir las entidades
Autor, Categoria y
Factura de una manera más sucinta.
Para ver un ejemplo aquí tienes el nuevo código para
Categoria:
package com.tuempresa.facturacion.modelo;
import javax.persistence.*;
import lombok.*;
@Entity @Getter @Setter
public class Categoria extends Identificable { // Extiende de Identificable
// por tanto no necesita tener una propiedad id
@Column(length=50)
String descripcion;
}
La refactorización es extremadamente simple.
Categoria
ahora desciende de
Identificable y hemos quitado la propiedad
oid.
De esta forma, no sólo tu código es más corto, sino también más elegante,
porque estás declarando tu clase como identificable (el qué, no el cómo),
y has quitado de tu clase de negocio un código que era un tanto técnico.
Aplica esta misma refactorización a las entidades
Autor y
Factura.
Además, a partir de ahora extenderás la mayoría de tus entidades de la
superclase mapeada
Identificable.
Hemos creado nuestra propia clase
Identificable para ver las ventajas de usar superclases mapeadas,
sin embargo OpenXava te provee una clase
Identifiable lista para
usar que puedes encontrar en el paquete
org.openxava.model. Por
tanto, en tu próximo proyecto no has de escribir la clase
Identificable
otra vez, simplemente usa la incluida en OpenXava.
Resumen
Has aprendido, pues, que una superclase mapeada es una clase normal y
corriente con anotaciones de mapeo JPA que puedes usar como clase base
para tus entidades. También has aprendido como usar una superclase mapeada
para simplificar tu código.
¿Problemas con la lección? Pregunta en el foro ¿Ha ido bien?
Ve a la lección 7