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;
}
}