Junior
Μπορεί η κλάση Entity να είναι αφηρημένη;
sobes.tech AI
Απάντηση από AI
Ναι, μπορεί. Η αφηρημένη κλάση Entity μπορεί να λειτουργήσει ως βασική κλάση για άλλες οντότητες, παρέχοντας κοινές ιδιότητες ή μεθόδους που πρέπει να κληρονομηθούν. Αυτό επιτρέπει την αποφυγή διπλότυπου κώδικα και την υλοποίηση πολυμορφισμού. Η προδιαγραφή JPA επιτρέπει τη χρήση αφηρημένων κλάσεων ως γονέων οντοτήτων μέσω στρατηγικών κληρονομιάς (@Inheritance).
Παράδειγμα:
// Αφηρημένη βασική κλάση Entity
@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Παράδειγμα στρατηγικής κληρονομιάς
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Κοινές ιδιότητες ή μέθοδοι
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Υποκλάση Entity:
// Υποκλάση που κληρονομεί από την αφηρημένη BaseEntity
@Entity
public class ConcreteEntity extends BaseEntity {
private String name;
// Ιδιότητες ειδικές για το ConcreteEntity
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}