Sobes.tech
Junior

Оё синфи Entity метавонад абстракт бошад?

sobes.tech AI

Ҷавоб аз 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;
    }
}