Junior
Ar gali būti Entity klasė abstrakti?
sobes.tech AI
Atsakymas iš AI
Taip, gali būti. Abstrakti Entity klasė gali būti pagrindinė klasė kitoms esybėms, teikianti bendras savybes ar metodus, kurie turi būti paveldėti. Tai leidžia išvengti kodo dubliavimo ir įgyvendinti polimorfizmą. JPA specifikacija leidžia naudoti abstrakčias klases kaip tėvų entitetus per paveldėjimo strategijas (@Inheritance).
Pavyzdys:
// Abstrakti pagrindinė Entity klasė
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Paveldėjimo strategijos pavyzdys
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Bendros savybės ar metodai
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Vaiko klasė Entity:
// Vaiko klasė, paveldinti iš abstrakčios BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {
private String name;
// Specifinės savybės ConcreteEntity
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}