Junior
Kas Entity klass võib olla abstraktne?
sobes.tech AI
Vastus AI-lt
Jah, võib. Abstraktne Entity klass võib toimida teiste olendite alusklassina, pakkudes ühiseid omadusi või meetodeid, mida tuleb pärida. See võimaldab vältida koodi dubleerimist ja rakendada polümorfismi. JPA spetsifikatsioon võimaldab abstraktsete klasside kasutamist olendite vanematena pärimisstrateegiate (@Inheritance) kaudu.
Näide:
// Abstraktne põhiklass Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Pärimisstrateegia näide
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Ühised omadused või meetodid
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Alamklass Entity:
// Alamklass, mis pärib abstraktsest BaseEntity-st
@Entity
public class ConcreteEntity extends BaseEntity {
private String name;
// ConcreteEntity spetsiifilised omadused
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}