簡體   English   中英

在我的Spring Boot Rest應用程序和json mysql中,onetoone映射不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM