基本上,我有 2 个类 P 和 M,以及它们对应的表 T_P 和 T_M,它们以一对多的关系连接,一个 P 有一组 Ms。像这样:
<class name="P" table="T_P">
<set name="ms" cascade="all" lazy="false" inverse="true">
<key column="P_ID" not-null="true" foreign-key="FK_M_P"/>
<one-to-many class="M"/>
</set>
</class>
<class name="M" table="T_M">
<many-to-one name="p" column="P_ID" foreign-key="FK_M_P" class="P"
update="false" not-null="true" cascade="none"/>
</class>
现在,当我对 P 进行更改并要求 Hibernate 更新数据库时。Hibernate 很可能会做一批更新,一个到 T_P,几个到 T_M,我知道后面的部分没有必要,因为我没有更改那些 Ms。但我认为因为我的对象是分离的,所以 hibernate 必须更新一切。
所以我的问题是,在我的情况下,我可以要求 Hibernate 只更新部分,而不是进行过多的 DB 命中吗?或其他优化这一点的建议也值得赞赏。但这是一个遗留程序,我可能无法做出重大改变。