Hibernate 5 @Entity cómo extender otra clase

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.

 

https://www.cwiki.us/display/HIBERNATE/questions/57938957

Supongo que te gusta

Origin www.cnblogs.com/huyuchengus/p/12682864.html
Recomendado
Clasificación