Sobes.tech
Junior

La classe Entity peut-elle être abstraite?

sobes.tech IA

Réponse de l'IA

Oui, peut-être. La classe abstraite Entity peut servir de classe de base pour d'autres entités, en fournissant des propriétés ou méthodes communes qui doivent être héritées. Cela permet d'éviter la duplication de code et de réaliser du polymorphisme. La spécification JPA autorise l'utilisation de classes abstraites comme classes parent pour les entités via des stratégies d'héritage (@Inheritance).

Exemple :

// Classe de base abstraite Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Exemple de stratégie d'héritage
public abstract class BaseEntity {

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

    // Propriétés ou méthodes communes
    public Long getId() {
        return id;
    }

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

Classe fille Entity :

// Classe fille héritant de la classe abstraite BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Propriétés spécifiques à ConcreteEntity
    public String getName() {
        return name;
    }

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