[英]onetoone Mapping is not working in my spring boot rest application and json mysql
一對一映射不起作用。這是我的編碼和json,是郵遞員發來的。 該值保存到mysql數據庫中,它唯一保存在我的第一個數據庫“ pharmacy”中,第二個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存儲庫進行保存,還使用了服務和服務實現
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);
}
}
您的映射是正確的。 在Dao中使用EntityManager。
PharmacyDaoImpl:
@Autowired
EntityManager entityManager;
@Override
public PharmacyEntity save(PharmacyEntity entity) {
entityManager.persist(entity);
return entity;
}
輸入數據 :
{“ pharmacyName”:“測試”,“ pharmacyaddress”:{“ pinCode”:“ 600001”,“ address”:“樣本”}}
回應:
{“ id”:6,“ pharmacyName”:“ test”,“ pharmacyaddress”:{“ id”:6,“ pharmacyEntity”:null,“ pinCode”:600001,“ address”:“ sample”}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.