Junior
198
Может ли класс Entity быть абстрактным?
AI-дан жауап
sobes.tech AI
Да, может. Абстрактный класс Entity может служить базовым классом для других сущностей, предоставляя общие свойства или методы, которые должны быть унаследованы. Это позволяет избежать дублирования кода и реализовать полиморфизм. JPA спецификация допускает использование абстрактных классов в качестве родительских для сущностей при помощи стратегий наследования (@Inheritance).
Пример:
// Абстрактный базовый класс Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Пример стратегии наследования
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Общие свойства или методы
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Дочерний класс Entity:
// Дочерний класс, наследующийся от абстрактного BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {
private String name;
// Свойства, специфичные для ConcreteEntity
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}