<natural-id mutable="true|false"/>
        <property ... />
        <many-to-one ... />
        ......
</natural-id>

我们建议使用代用键(键值不具备实际意义)作为主键,我们仍然应该尝试为所有的实体采用自然的键值作为(附加——译者注)标示。自然键(natural key)是单个或组合属性,他们必须唯一且非空。如果它还是不可变的那就更理想了。在<natural-id>元素中列出自然键的属性。Hibernate会帮你生成必须的唯一键值和非空约束,你的映射会更加的明显易懂(原文是self-documenting,自我注解)。

我们强烈建议你实现equals()hashCode()方法,来比较实体的自然键属性。

这一映射不是为了把自然键作为主键而准备的。

  • mutable (可选, 默认为false): 默认情况下,自然标识属性被假定为不可变的(常量)。