Junior
¿Puede la clase Entity ser abstracta?
sobes.tech AI
Respuesta de la IA
Sí, puede. La clase abstracta Entity puede servir como clase base para otras entidades, proporcionando propiedades o métodos comunes que deben ser heredados. Esto permite evitar la duplicación de código y realizar polimorfismo. La especificación JPA permite el uso de clases abstractas como padres de entidades mediante estrategias de herencia (@Inheritance).
Ejemplo:
// Clase base abstracta Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Ejemplo de estrategia de herencia
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Propiedades o métodos comunes
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Clase hija Entity:
// Clase hija que hereda de la clase base abstracta BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {
private String name;
// Propiedades específicas de ConcreteEntity
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}