Sobes.tech
Junior

Lehet az Entity osztály absztrakt?

sobes.tech MI

Válasz az MI-től

Igen, lehet. Az absztrakt Entity osztály más entitások alap osztályaként szolgálhat, közös tulajdonságokat vagy metódusokat biztosítva, amelyeket örökölni kell. Ez lehetővé teszi a kód ismétlésének elkerülését és a polimorfizmus megvalósítását. A JPA specifikáció megengedi absztrakt osztályok használatát entitások szülőosztályaként az öröklési stratégiák (@Inheritance) segítségével.

Példa:

// Absztrakt alap osztály Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Példa öröklési stratégia
public abstract class BaseEntity {

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

    // Közös tulajdonságok vagy metódusok
    public Long getId() {
        return id;
    }

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

Gyermek osztály Entity:

// Gyermek osztály, amely örököl az absztrakt BaseEntity-ből
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // ConcreteEntity-specifikus tulajdonságok
    public String getName() {
        return name;
    }

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