<natural-id mutable="true|false"/>
<property ... />
<many-to-one ... />
......
</natural-id>
主キーとして代理キーの使用を推奨しますが、すべてのエンティティに対して自然キーを識別するようにすべきです。自然キーはユニークかつ非 null な一つのプロパティ、またはプロパティの連結です。不変であればさらに良いです。 <natural-id> 要素内で自然キーのプロパティをマッピングします。 Hibernate は必然的にユニークかつ null 値を許可する制約を生成し、こうしてマッピングはより自己記述的になります。
エンティティの自然キープロパティの比較には、 equals() と hashCode() の実装を強くお勧めします。
このマッピングは自然主キーを使ったエンティティでの使用を意図していません。
mutable (オプション、 デフォルトは false ): デフォルトでは、自然識別子プロパティは不変(定数)と想定されています。