Sobes.tech
Junior

Entity sinfi abstrakt ola bilərmi?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, ola bilər. Abstrakt Entity sinfi digər varlıqlar üçün əsas sinif kimi xidmət edə bilər və ümumi xüsusiyyətlər və ya metodlar təmin edə bilər, bunlar irs alınmalıdır. Bu, kod təkrarlamasını qarşısını alır və çox formallıq (polimorfizm) həyata keçirməyə imkan verir. JPA spesifikasiyası, irs strategiyaları (@Inheritance) vasitəsilə, abstrakt siniflərdən varlıqlar üçün valideyn kimi istifadə etməyə icazə verir.

Nümunə:

// Abstrakt əsas sinif Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // İrs strategiyasının nümunəsi
public abstract class BaseEntity {

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

    // Ümumi xüsusiyyətlər və ya metodlar
    public Long getId() {
        return id;
    }

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

Uşaq sinfi Entity:

// Abstrakt BaseEntity-dən irs alan uşaq sinfi
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // ConcreteEntity-ə xas xüsusiyyətlər
    public String getName() {
        return name;
    }

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