我正在使用hibernate
更新ManyToOne
关系,但它没有更新子类。
class People{
@Id
@Column(name = "People_id")
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@NotNull
@Size(max = 45)
@Column(name = "phone", length = 45, nullable = false)
private String phone;
@ManyToOne
@JoinColumn(name="regions_id")
private Regions regionsid;
@ManyToOne
@JoinColumn(name="role_id")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
private Role role_id;
}
class Role {
@Id
@Column(name = "Role_id")
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToOne
@JoinColumn(name="regions_id")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
private Regions regions_id;
}
public class Regions implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
当我使用以下方式拯救人们时: -
people.getRole_id().setRegions_id(people.getRegions_id());
People result = peopleRepository.saveAndFlush(people);
是不是使用区域代码更新区域表。
我不确定cascade是否定义正确。
你能指导我如何纠正它吗?
答案 0 :(得分:0)
代码:
people.getRole_id().setRegions_id(people.getRegions_id());
People result = peopleRepository.saveAndFlush(people);
您更新了角色表中的 regions_id 列,但不带有区域代码的区域表。
你能解释一下你想做什么吗?