Sobes.tech
Junior

Může být třída Entity abstraktní?

sobes.tech AI

Odpověď od AI

Ano, může být. Abstraktní třída Entity může sloužit jako základní třída pro jiné entity a poskytovat společné vlastnosti nebo metody, které musí být zděděny. To umožňuje zabránit duplicitě kódu a implementovat polymorfismus. Specifikace JPA umožňuje použití abstraktních tříd jako rodičovských tříd entit pomocí strategií dědičnosti (@Inheritance).

Příklad:

// Abstraktní základní třída Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Příklad strategie dědičnosti
public abstract class BaseEntity {

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

    // Společné vlastnosti nebo metody
    public Long getId() {
        return id;
    }

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

Potomková třída Entity:

// Potomková třída, dědí z abstraktní BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Vlastnosti specifické pro ConcreteEntity
    public String getName() {
        return name;
    }

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