【问题标题】:onetoone Mapping is not working in my spring boot rest application and json mysqlonetoone 映射在我的 spring boot rest 应用程序和 json mysql 中不起作用
【发布时间】: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


    【解决方案1】:

    您的映射是正确的。 在 Dao 中使用 EntityManager。

    PharmacyDaoImpl:

    @Autowired
    EntityManager entityManager;
    
    @Override
    public PharmacyEntity save(PharmacyEntity entity) {
    
    
        entityManager.persist(entity);
        return entity;
    }
    

    输入数据:

    { "药房名称":"测试", “药房地址”:{ "pinCode":"600001", “地址”:“样品”} }

    回应:

    { "id": 6, "pharmacyName": "测试", “药房地址”:{ “身份证”:6, “药房实体”:空, “密码”:600001, “地址”:“样品”} }

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 2019-04-23
      • 2021-06-24
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2018-03-15
      • 2021-08-01
      相关资源
      最近更新 更多