我有一个奇怪的问题。我有实体公司,分公司和地址。公司有分支机构清单,每个分支机构都有地址。我试图使用地址实体之前不存在的分支进行持久化,但是地址为null列的持久化。
@Data
@Entity
@Indexed
@Table(name = "company")
public class Company {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
private String id;
@Field
@Column(name = "full_name", nullable = false, unique = true)
private String fullName;
@OneToMany(mappedBy = "company")
private Set<Branch> branches;
}
@Data
@Entity
@Table(name = "branch")
public class Branch {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column
private String phone;
@Column
private String email;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "address_id", referencedColumnName = "id")
private Address address;
@ManyToOne
@JoinColumn(name = "company_id", referencedColumnName = "id")
private Company company;
}
@Entity
@Table(name = "address")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column
private String street;
@OneToOne(mappedBy = "address")
private Company company;
@OneToOne(mappedBy = "address")
private Branch branch;
}
服务...
public Integer addBranch(BranchDto branchDto) {
Branch branch = modelMapper.map(branchDto, Branch.class);
Company company = companyRepository.getCompanyById(branchDto.getCompanyId());
branch.setCompany(company);
return branchRepository.save(branch).getId();
}
Dto ...
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BranchDto {
private Integer id;
private String phone;
private String email;
private AddressDto address;
private String companyId;
}
这就是效果...
调试器...
是什么问题?你能帮我吗?
您的实体地址在表地址中没有大多数字段