Sobes.tech
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;
    }
}