Hibernate naturalID

时间:2010-04-01 10:06:48

标签: hibernate

Hibernate似乎不会在标记为naturalID的字段上生成notnull约束。这是正常的吗?

@MappedSuperclass
public class AbstractDomainObject extends PersistentObject {

 @NaturalId
 private String code;

DB Schema:CONSTRAINT SYS_CT_47 UNIQUE(CODE) 这里没有空约束。

1 个答案:

答案 0 :(得分:3)

查看以下摘录自Hibernate的参考手册:

  

自然键是属性或属性组合,它们是唯一且非空的。它也是不可改变的。将自然键的属性映射为@NaturalId,或将它们映射到< natural-id>内。元件。 Hibernate将生成必要的唯一键和可空性约束,因此,您的映射将更加自我记录。

另请注意,默认情况下,假设自然标识符属性是不可变的(常量)您可以通过指定@NaturalId (mutable = true)

来更改默认值