了解有关双向一对多映射的hibernate文档

时间:2014-09-10 20:18:33

标签: java hibernate

根据Bidirectional associations - 8.4.1. one-to-many / many-to-one的Hibernate文档,声明如下:

  

如果使用List或其他索引集合,请设置键列   外键不为null。 Hibernate将管理关联   从集合方面来维护每个元素的索引,   通过设置update =“false”来使对方实际上是反向的   插入= “假”

     

如果底层外键列为NOT NULL,则重要的是   你在集合的元素上定义not-null =“true”   映射。不要在可能的嵌套上声明not-null =“true”    元素,但在元素上。

我正在浏览文档以了解Hibernate,但我不清楚以上语句。我几乎没有怀疑:

1)If you use a List, or other indexed collection, set the key column of the foreign key to not null - 为什么我要将外键设置为not-null,这是强制性的吗?

2)making the other side virtually inverse by setting update="false" and insert="false" - 我们应该何时设置update="false" and insert="false"以及如果我不设置会发生什么?

insertupdate的目的也是documentation(第5.1.4.2节。使用hbm.xml进行属性映射):

  

update,insert(可选 - 默认为true):指定   映射列应包含在SQL UPDATE和/或INSERT中   声明。将两者都设置为false允许纯粹的“派生”属性   其值是从映射到的其他属性初始化的   相同的列,或通过触发器或其他应用程序。

因此,如果我没有任何其他属性映射到同一列或触发器,那么为什么我们需要将它们设置为false

3)当文档说:Do not only declare not-null="true" on a possible nested <column> element, but on the <key> element.

时,它意味着什么

请帮助我理解这些。提前谢谢。

0 个答案:

没有答案