Sobes.tech
Junior

Kann die Klasse Entity abstrakt sein?

sobes.tech KI

Antwort von AI

Ja, vielleicht. Die abstrakte Klasse Entity kann als Basisklasse für andere Entitäten dienen, indem sie gemeinsame Eigenschaften oder Methoden bereitstellt, die vererbt werden müssen. Dies ermöglicht die Vermeidung von Code-Duplikation und die Implementierung von Polymorphismus. Die JPA-Spezifikation erlaubt die Verwendung abstrakter Klassen als Eltern von Entitäten mittels Vererbungsstrategien (@Inheritance).

Beispiel:

// Abstrakte Basisklasse Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Beispiel für Vererbungsstrategie
public abstract class BaseEntity {

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

    // Gemeinsame Eigenschaften oder Methoden
    public Long getId() {
        return id;
    }

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

Kindklasse Entity:

// Kindklasse, die von der abstrakten BaseEntity erbt
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Spezifische Eigenschaften für ConcreteEntity
    public String getName() {
        return name;
    }

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