![](/img/trans.png)
[英]Spring boot hibernate bidirectional mapping many to one can not established relationship
[英]How to fix my bidirectional one to many relationship in Spring Boot
我正在嘗試在兩個表之間建立一對多關系,兩個表之一是聚合根表(Vessel)。 但是當我創建一個新實體時,多對一表不會將其外鍵映射到多對一表的主鍵。 我做錯了什么?
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "vessel_info")
@SequenceGenerator(name = "vessel_id_seq",sequenceName = "vessel_id_seq", initialValue = 1,allocationSize = 1)
public class Vessel {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator ="vessel_id_seq" )
@Column(name = "vessel_code")
private Long vesselCode;
private String name;
private Long companyId;
private Long imo;
private String type;
@Column(name = "fleet_id")
private Long fleetId;
private String yard;
private Integer hn;
private Date delivered;
private Double age;
@OneToMany(mappedBy = "vessel",cascade = CascadeType.ALL,
targetEntity = BoilerInfo.class, orphanRemoval = true,fetch = FetchType.EAGER)
private List<BoilerInfo> boilerInfo ;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "boiler_info")
@SequenceGenerator(name = "boiler_id_seq",sequenceName = "boiler_id_seq", initialValue = 1,allocationSize = 1)
public class BoilerInfo {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator ="boiler_id_seq" )
private Long id;
private String maker;
private String type;
private String tubeType;
private String exhGasByPass;
@ManyToOne(fetch = FetchType.EAGER, optional = false,targetEntity = Vessel.class)
@JoinColumn(name="vessel_code",nullable = false)
private Vessel vessel;
}
private final VesselRepository vesselRepository ;
@Override
public Vessel create(Vessel entity) {
log.info("Creating {}.", entity);
Vessel vessel = vesselRepository.save(entity);
return vessel;
}
{
"fleetId":"1",
"name":"BOILERTEST",
"type":"temp",
"companyId":"1",
"boilerInfo":[{
"maker": "temp",
"type":"temp"
}]
}
設置關系的兩面:
vesel.getBoilerinfos().add(boilerInfo);
boilerInfo.setVesel(vesel);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.