一尘不染

我可以使嵌入式Hibernate实体不可为空吗?

hibernate

我想要的是:

@Embedded(nullable = false)
private Direito direito;

但是,您知道@Embeddable没有这样的属性。

有正确的方法吗?我不想要解决方法。


阅读 229

收藏
2020-06-20

共1个答案

一尘不染

可嵌入组件(或复合元素,无论您想称呼它们)通常包含多个属性,因此被映射到多个列。因此,整个组件为null可以用不同的方式处理。J2EE规范没有规定一种方法。

如果所有组件的属性均为NULL,则Hibernate会将其视为NULL(反之亦然)。因此,您可以声明一个(任意)属性不为null(在on
@Embeddable@AttributeOverrideon的一部分@Embedded)以实现所需的结果。

另外,如果您使用的是Hibernate Validator,则可以使用属性进行注释,@NotNull尽管这只会导致应用程序级检查,而不是数据库级检查。

2020-06-20