Sobes.tech
Junior
132
questionbank

Может ли класс Entity быть абстрактным?

Ответ от нейросети

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