Hej!
W swoim artykule nt. wykorzystywania UID jako id obiektu https://4programmers.net/Forum/1316159 zastosowałam klasę po której miałyby dziedziczyć wszystkie encje JPA ukazaną poniżej:
import lombok.Getter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.UUID;
@Getter
@ToString
@MappedSuperclass
public abstract class SimpleEntity implements Serializable {
@Id
@Column(updatable = false, nullable = false, unique = true)
private final UUID id = UUID.randomUUID();
@Version
private Integer version;
private LocalDateTime creationDate;
private LocalDateTime modificationDate;
@PrePersist
private void prePersist() {
modificationDate = creationDate = LocalDateTime.now();
}
@PreUpdate
private void preUpdate() {
modificationDate = LocalDateTime.now();
}
@Override
public boolean equals(Object that) {
return this == that || that instanceof SimpleEntity
&& Objects.equals(id, ((SimpleEntity) that).id);
}
@Override
public int hashCode() {
return Objects.hashCode(id);
}
}
I jest to ładne, cwane i zapewnia nam ładne ID , które wyjaśniłam w podlinkowanym wyżej artykule. Tymczasem dzisiaj natknęłam się na taki film:
w którym to Pan mówi dziedziczyć należy zachowania klas a straszną głupotą jest dziedziczenie pól. dziedziczenie nie powstało po to żeby dziedziczyć pola. zachowania wspólne się dziedziczy a na pewno nie pola
. Więc w takim razie dlaczego nie wolno dziedziczyć pól i jakie minusy ma dziedziczenie pól jak w przykładzie podanym przeze mnie wyżej (klasa SimpleEntity). Pytam, bo odkryłam nową rzecz i całkowicie tego nie rozumiem dlaczego dziedziczenie pól jest be? Czy ten gość przesadza czy ma rację?