Sobes.tech
Junior

Vai klasei Entity var būt abstrakta?

sobes.tech AI

Atbilde no AI

Jā, var. Abstraktā Entity klase var kalpot kā pamatklase citām būtībām, nodrošinot kopīgas īpašības vai metodes, kuras ir jāmanto. Tas ļauj izvairīties no koda dublēšanas un īstenot polimorfismu. JPA specifikācija ļauj izmantot abstraktas klases kā vecākus būtībām, izmantojot mantošanas stratēģijas (@Inheritance).

Piemērs:

// Abstrakta pamatklase Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Mantošanas stratēģijas piemērs
public abstract class BaseEntity {

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

    // Kopīgas īpašības vai metodes
    public Long getId() {
        return id;
    }

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

Meitas klase Entity:

// Meitas klase, kas manto no abstraktās BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {

    private String name;

    // ConcreteEntity specifiskās īpašības
    public String getName() {
        return name;
    }

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