【发布时间】:2017-12-19 12:45:43
【问题描述】:
一对一映射不起作用。这是我从邮递员发布的编码和 json。该值保存到 mysql db 中,它只保存在我的第一个数据库“药房”中,第二个 Db 没有保存外键映射。 ;
json: {
"pharmacyName":"test",
"pharmacyaddress":{
' "pinCode":"600001",
"address":"sample"
}
}
第一个实体
@Entity @Table(name = "pharmacy")
public class PharmacyEntity{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "phrm_id")
private Long id;
private String pharmacyName;
@OneToOne(mappedBy = "pharmacyEntity", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, optional = false)
private PharmacyDetailsEntity pharmacyaddress;
public PharmacyDetailsEntity getPharmacyaddress() {
return pharmacyaddress;
}
public void setPharmacyaddress(PharmacyDetailsEntity pharmacyaddress) {
this.pharmacyaddress = pharmacyaddress;
pharmacyaddress.setPharmacyEntity(this);
}
//Getter & Setter }
第二个实体;
@Entity
@Table(name = "phrm_details")
public class PharmacyDetailsEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "phrm_dtls_id")
private int id;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "phrm_id", referencedColumnName = "phrm_id")
private PharmacyEntity pharmacyEntity;
@Column(name = "pin_code")
private int pinCode;
@Column(columnDefinition = "TEXT")
private String address;
}
这是我的@Restcontroller,我正在使用 JPA Repository 进行保存并使用服务和服务实现
my controller is
@RequestMapping(value = "/savepharmacy", method = RequestMethod.POST,consumes = "application/json", produces = "application/json")
public ResponseEntity<?> createPharmacy( @RequestBody PharmacyEntity pharmacyEntity) {
try {
PharmacyEntity ph = pharmacyservice.savePharmacy(pharmacyEntity);
return new ResponseEntity<ProjectStatus>(HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity<CustomErrorType>( HttpStatus.BAD_REQUEST);
}
}
【问题讨论】:
标签: java json spring hibernate spring-boot