Witam wszystkich. To mój 1szy projekt w Springu i potrzebuję wsparcia.
mam 3 encje:
- Klient
- Kandydat
- Załącznik
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Attachment {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@NotNull
private String path;
@NotNull
private String fileName;
@NotNull
private String fileMimeType;
@NotNull
private Long fileSize;
@NotNull
@Lob
private byte[] file;
}
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClientCard {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@NotNull
private String clientAcronym;
@NotNull
@Column(columnDefinition="TEXT")
private String description;
@NotNull
@OneToOne(fetch = EAGER)
@JoinColumn(name = "addressId")
private PostalAddress address;
@NotNull
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "client_card_attachment",
joinColumns = { @JoinColumn(name = "client_id") },
inverseJoinColumns = { @JoinColumn(name = "attachment_id") })
private Set<Attachment> attachment;
}
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CandidateCard {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@NotNull
private String firstName;
@NotNull
private String aditionalName;
@NotNull
private String lastName;
@NotNull
@Size(min = 11, max = 11)
private String pesel;
@NotNull
@Enumerated(value = STRING)
private MaritalStatus maritalStatus;
@NotNull
@OneToOne(fetch = EAGER)
@JoinColumn(name = "addressId")
private PostalAddress address;
public enum MaritalStatus {
SINGLE, MARRIED, DIVORCED, WIDOWED, OTHER
}
}
Utknąłem, muszę np. do klienta dodać załącznik. Muszę wiedzieć, że to jest od klienta. Czytam o @Inheritance i @Descriptor i to powinno mi pomóc ale nie potrafię tego zastosować tutaj. Czy muszę stworzyć jakąś bazową abstrakcyjną klasę Osoba z propertiesem id?
Dalej klasę pochodną, zawierającą już stosowne pola dla Klienta, dalej klasę pochodną, zawierającą stosowne pola dla Kandydata?