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