Sobes.tech
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;
    }
}