gpt4 book ai didi

java - 我什么时候应该在 JPA 2.0 中使用 @Basic(optional = false)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:37 26 4
gpt4 key购买 nike

我在 JPA 中有一个带有单表映射的继承,比如说 A 类和 B 类扩展了一些抽象实体,所以我必须使 A 和 B 中的列在数据库端可以为空,但是如果有人试图保留 A,那么所有字段A 不应该为空,我想通过代码强制执行。我可以使用以下代码来实现此目的吗 -

@Entity  
@DiscriminatorValue("1")
public Class A extends SomeAbstractEntity{
@Basic(optional = false)
private String nameOfA;
}

我读了这个答案@Basic(optional = false) vs @Column(nullable = false) in JPA并认为这可能是可以实现的,但想知道什么是最好的方法。

最佳答案

这很有趣,但看起来在这种情况下(使用单表继承)@Basic(optional = false) 不是由 Hibernate 强制执行的(尽管在其他情况下它按预期工作)。

如果是这样,执行此规则的唯一选择是使用来自 JSR-303 Bean Validation 的 @NotNull 约束。 JSR-303 与 JPA 2.0 顺利集成,以便在实体持久化时自动检查约束,参见 Hibernate Validator .

关于java - 我什么时候应该在 JPA 2.0 中使用 @Basic(optional = false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com