Witam,
Mam problem z mapowaniem, bo dla relacji one-to-one udało mi się rozgryźć jak to wykonać, to mam problem z relacją many-to-one.
Poniżej zamieszczam kod.
@Entity
@Table(name = "PATIENT")
public class PatientEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String firstName;
@OneToOne(
cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
optional = false
)
private AddressEntity address;
@OneToMany(mappedBy = "patient")
private List<VisitEntity> visit;
// gettery i settery
}
@Entity
@Table(name = "VISIT")
public class VisitEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String description;
@ManyToOne(
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
@JoinColumn(name = "patient_id")
private PatientEntity patient;
// gettery i settery
}
public final class PatientMapper {
public static PatientTO mapToTO(final PatientEntity patientEntity)
{
final PatientTO patientTO = new PatientTO();
patientTO.setId(patientEntity.getId());
patientTO.setFirstName(patientEntity.getFirstName());
final AddressTO addressTO = new AddressTO();
addressTO.setId(patientEntity.getAddress().getId());
addressTO.setCity(patientEntity.getAddress().getCity());
patientTO.setAddress(addressTO);
return patientTO;
}
public static PatientEntity mapToEntity(final PatientTO patientTO)
{
PatientEntity patientEntity = new PatientEntity();
patientEntity.setId(patientTO.getId());
patientEntity.setFirstName(patientTO.getFirstName());
AddressEntity addressEntity = new AddressEntity();
addressEntity.setId(patientTO.getAddress().getId());
addressEntity.setCity(patientTO.getAddress().getCity());
patientEntity.setAddress(addressEntity);
return patientEntity;
}
}
Siedzę nad problemem relacji many-to-one od dłuższego czasu i nie mogę dojść jak napisać poprawnie mapowanie Entity-DTO oraz DTO-Entity.
Bardo bym prosił o pomoc jak stworzyć maper dla List<VisitEntity> visit.