@ManyToMany关系无法保存
我有一些与@ManyToMany
关系有关的实体:
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)@JoinTable(name = "buses_drivers",
joinColumns = @JoinColumn (name = "driver_id_inner", referencedColumnName = "driver_id"),
inverseJoinColumns = @JoinColumn (name = "bus_id_inner", referencedColumnName = "bus_id"))
private List<Bus> buses;
和
@ManyToMany(mappedBy = "buses", fetch = FetchType.EAGER, cascade = CascadeType.ALL)private List<Driver> drivers;
Driver
使用某些Bus
模型执行保存模型时,一切正常。表buses_drivers
存储这些实体的所有键。但是,Bus
使用驱动程序保存模型时,表不会更改。我认为inverseJoinColmns
映射存在问题。
回答:
那是预期的行为。在双向多对多关联中,一侧必须是反侧。在您的情况下,这是Bus
一面,因为它包含mappedBy
:
拥有关系的字段。除非关系是单向的,否则为必需。
这意味着Driver
是关联的所有者,并且Hibernate仅在维护关联时检查该侧。
以上是 @ManyToMany关系无法保存 的全部内容, 来源链接: utcz.com/qa/401005.html