是否有理由将@NotNull注释放在Java实体类的@Id字段中

gav*_*koa 5 java jpa bean-validation

我在实体类中找到了代码:

@Id
@NotNull
@Column(name = "ID")
private Long id;
Run Code Online (Sandbox Code Playgroud)

@NotNull标注有值时@Id已经设置?

Jef*_*eff 6

@NotNull用于验证目的,比如@Size.它定义了验证引擎的规则,以检查用户输入是否正常.围绕这些注释进行验证并不一定表明该对象也是JPA对象,但这两者通常一起使用.

如果您使用javax.validation而不是依赖于DB级别的失败(约束违规)来指示空值,那么您应该使用两个注释.