Sobes.tech
Junior
204

La classe Entity può essere astratta?

Risposta dell'AI

sobes.tech AI

Sì, può. La classe astratta Entity può fungere da classe base per altre entità, fornendo proprietà o metodi comuni che devono essere ereditati. Questo permette di evitare la duplicazione del codice e di implementare il polimorfismo. La specifica JPA consente l'uso di classi astratte come classi genitore per le entità tramite strategie di ereditarietà (@Inheritance).

Esempio:

// Classe base astratta Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Esempio di strategia di ereditarietà
public abstract class BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // Proprietà o metodi comuni
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

Classe figlia Entity:

// Classe figlia che eredita da BaseEntity astratta
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Proprietà specifiche di ConcreteEntity
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}