Sobes.tech
Junior

Poate fi clasa Entity abstractă?

sobes.tech AI

Răspuns de la AI

Da, poate. Clasa abstractă Entity poate servi ca clasă de bază pentru alte entități, oferind proprietăți sau metode comune care trebuie moștenite. Acest lucru permite evitarea duplicării codului și implementarea polimorfismului. Specificația JPA permite utilizarea claselor abstracte ca părinți pentru entități prin strategii de moștenire (@Inheritance).

Exemplu:

// Clasă de bază abstractă Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Exemplu de strategie de moștenire
public abstract class BaseEntity {

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

    // Proprietăți sau metode comune
    public Long getId() {
        return id;
    }

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

Clasă fiică Entity:

// Clasă fiică care moștenește de la BaseEntity abstractă
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Proprietăți specifice pentru ConcreteEntity
    public String getName() {
        return name;
    }

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