Sobes.tech
Junior

Entity sinfi abstrakt bo'lishi mumkinmi?

sobes.tech AI

AIdan javob

Ha, mumkin. Abstrakt Entity sinfi boshqa mavjudotlar uchun asos sinfi sifatida xizmat qilishi mumkin, umumiy xususiyatlar yoki metodlarni taqdim etib, meros olishlari uchun. Bu kodni takrorlashdan qochish va polimorfizmni amalga oshirish imkonini beradi. JPA spetsifikatsiyasi, meros olish strategiyalari (@Inheritance) yordamida, abstrakt sinflardan mavjudotlar uchun ota sinflar sifatida foydalanishga ruxsat beradi.

Misol:

// Abstrakt asos sinf Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Meros olish strategiyasi misoli
public abstract class BaseEntity {

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

    // Umumiy xususiyatlar yoki metodlar
    public Long getId() {
        return id;
    }

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

Meros oluvchi sinf Entity:

// Abstrakt BaseEntity'dan meros oluvchi sinf
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // ConcreteEntity uchun xususiyatlar
    public String getName() {
        return name;
    }

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