Hibernate似乎不会在标记为naturalID的字段上生成notnull约束。这是正常的吗?
@MappedSuperclass
public class AbstractDomainObject extends PersistentObject {
@NaturalId
private String code;
DB Schema:CONSTRAINT SYS_CT_47 UNIQUE(CODE) 这里没有空约束。
答案 0 :(得分:3)
查看以下摘录自Hibernate的参考手册:
自然键是属性或属性组合,它们是唯一且非空的。它也是不可改变的。将自然键的属性映射为@NaturalId,或将它们映射到< natural-id>内。元件。 Hibernate将生成必要的唯一键和可空性约束,因此,您的映射将更加自我记录。
另请注意,默认情况下,假设自然标识符属性是不可变的(常量)您可以通过指定@NaturalId (mutable = true)