Sobes.tech
Junior

A classe Entity pode ser abstrata?

sobes.tech IA

Resposta da IA

Sim, pode. A classe abstrata Entity pode servir como classe base para outras entidades, fornecendo propriedades ou métodos comuns que devem ser herdados. Isto permite evitar duplicação de código e implementar polimorfismo. A especificação JPA permite o uso de classes abstratas como classes parent para entidades através de estratégias de herança (@Inheritance).

Exemplo:

// Classe base abstrata Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Exemplo de estratégia de herança
public abstract class BaseEntity {

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

    // Propriedades ou métodos comuns
    public Long getId() {
        return id;
    }

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

Classe filha Entity:

// Classe filha que herda de BaseEntity abstrata
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // Propriedades específicas de ConcreteEntity
    public String getName() {
        return name;
    }

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