Sobes.tech
Junior

Môže byť trieda Entity abstraktná?

sobes.tech AI

Odpoveď od AI

Áno, môže. Abstraktná trieda Entity môže slúžiť ako základná trieda pre iné entity, poskytujúc spoločné vlastnosti alebo metódy, ktoré musia byť zdedené. To umožňuje vyhnúť sa duplikácii kódu a implementovať polymorfizmus. Špecifikácia JPA umožňuje používanie abstraktných tried ako rodičov pre entity pomocou stratégií dedičnosti (@Inheritance).

Príklad:

// Abstraktná základná trieda Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Príklad stratégie dedičnosti
public abstract class BaseEntity {

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

    // Spoločné vlastnosti alebo metódy
    public Long getId() {
        return id;
    }

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

Dcérska trieda Entity:

// Dcérska trieda, ktorá dedí od abstraktnej BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Vlastnosti špecifické pre ConcreteEntity
    public String getName() {
        return name;
    }

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