En el diseño real del proyecto, es posible que deseemos definir la tabla @Entity en JPA.
Pero en esta clase @Entity, queremos extender otra clase, en otra clase podemos establecer algunas propiedades comunes en ella.
Por ejemplo:
clase pública Covid19Current extiende los implementos DataObject java.io.Serializable { }
Entonces, ¿qué anotación debemos agregar a DataObject?
Necesita agregar la anotación @MappedSuperclass en DataObject.
Se puede definir de la siguiente manera:
@MappedSuperclass public abstract class DataObject { }
La anotación @MappedSuperclass solo puede ser estándar en la clase: @Target ({java.lang.annotation.ElementType.TYPE})
La clase marcada como @MappedSuperclass no será una clase de entidad completa, no se asignará a la tabla de la base de datos, pero sus atributos se asignarán a los campos de la base de datos de sus subclases.
Las clases anotadas con @MappedSuperclass ya no pueden anotarse con @Entity o @Table, ni necesitan implementar una interfaz de serialización.
Pero si una clase etiquetada como @MappedSuperclass hereda otra clase de entidad u otra clase también etiquetada como @MappedSuperclass, podrá redefinir su clase principal (independientemente de si es una clase de entidad) usando las anotaciones @AttributeOverride o @AttributeOverrides Los atributos se asignan a los campos en las tablas de la base de datos.
Por ejemplo, puede redefinir atributos como el nombre o la longitud del campo y usar el sub-atributo @Column de @ AttributeOverride para definiciones específicas.