【发布时间】:2019-11-15 22:17:44
【问题描述】:
我正在创建 Rest web 服务,两个实体患者和地址,在帖子中我希望将地址作为对象与患者属性一起传递,但我遇到了错误
PatientController.java
@ApiOperation(value = "Add a patient")
@RequestMapping(value = "/patients", method= RequestMethod.POST, produces = "application/json")
public ResponseEntity<Object> createPatient(@Valid @RequestBody Patient patient, BindingResult bindingResult) {
if(bindingResult.hasErrors()) {
errors = new HashMap<>();
for(FieldError error:bindingResult.getFieldErrors()) {
errors.put(error.getField(), error.getDefaultMessage());
}
return new ResponseEntity<>(errors, HttpStatus.NOT_ACCEPTABLE);
}
Address address = new Address();
patient.getAddress().add(address);
return new ResponseEntity<>(patientRepository.save(patient), HttpStatus.OK);
}
耐心.java
@Entity
@Table(name = "patients")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Patient implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "patient_id", updatable = false)
private UUID id;
private String name;
private String age;
@JsonFormat(pattern="yyyy-MM-dd")
private Date dob;
private String occupation;
@Enumerated(EnumType.STRING)
private Gender gender= Gender.MALE;
@OneToMany(mappedBy = "patient", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Address> address = new ArrayList<>();
@OneToMany(mappedBy = "patient", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Contact> contact;
@OneToMany(mappedBy = "patient", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<ReferenceBy> references;
public Patient() {}
}
【问题讨论】:
-
您有 2 个
patient具有相同的id
标签: java postgresql hibernate spring-boot jpa