ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 5.1.12\. 自然ID(natural-id) ``` <natural-id mutable="true|false"/> <property ... /> <many-to-one ... /> ...... </natural-id> ``` 我们建议使用代用键(键值不具备实际意义)作为主键,我们仍然应该尝试为所有的实体采用自然的键值作为(附加——译者注)标示。自然键(natural key)是单个或组合属性,他们必须唯一且非空。如果它还是不可变的那就更理想了。在`&lt;natural-id&gt;`元素中列出自然键的属性。Hibernate会帮你生成必须的唯一键值和非空约束,你的映射会更加的明显易懂(原文是self-documenting,自我注解)。 我们强烈建议你实现`equals()` 和`hashCode()`方法,来比较实体的自然键属性。 这一映射不是为了把自然键作为主键而准备的。 * `mutable` (可选, 默认为`false`): 默认情况下,自然标识属性被假定为不可变的(常量)。