Hibernate 为什么在持久化与其他实体具有一对多关系的实体时会触发其他查询?

Hibernate 为什么在持久化与其他实体具有一对多关系的实体时会触发其他查询?,hibernate,one-to-many,Hibernate,One To Many,示例:1个国家有关联州列表(假设2个)。 当我持久化country对象时,Hibernate会触发以下查询: insert into MyCountry (name, id) values (?, ?) insert into MyState (name, country_id, id) values (?, ?, ?) insert into MyState (name, country_id, id) values (?, ?, ?) update MyState set country_i

示例:1个国家有关联州列表(假设2个)。 当我持久化country对象时,Hibernate会触发以下查询:

insert into MyCountry (name, id) values (?, ?)
insert into MyState (name, country_id, id) values (?, ?, ?)
insert into MyState (name, country_id, id) values (?, ?, ?)
update MyState set country_id=? where id=?
update MyState set country_id=? where id=?
为什么在可以添加国家/地区id的位置触发单独的更新查询:

insert into MyState (name, country_id, id) values (?, ?, ?)

检查Hibernate
inverse
属性:

什么是“逆”?

这是Hibernate中最令人困惑的关键词,至少我花了不少时间 我花了很长时间去理解它。“反向”关键字始终是declare 在一对多和多对多的关系中(多对一没有 反向关键字),表示由哪一方负责处理 关系。“反向”,是否应改为“关系所有者”

在Hibernate中,只有“关系所有者”应该维护 关系,并创建“反向”关键字来定义 一方是维护关系的所有者。然而,“相反” 关键字本身不够详细,我建议更改 “关系所有者”的关键字

简而言之,reverse=“true”表示这是关系所有者,并且 reverse=“false”(默认值)表示不是


根据“关系所有者”的不同,Hibernate决定是否进行更新。

能否发布映射,以及保存这些对象的代码?
cascade
是否从国家设置到州?映射:@OneToMany(cascade=CascadeType.ALL)@JoinColumn(name=“country\u id”,nullable=false)私有列表状态;如何使用JPA注释指定反向?