Java 如何为@Column(nullable=false)添加自定义消息?

Java 如何为@Column(nullable=false)添加自定义消息?,java,spring,spring-boot,hibernate,Java,Spring,Spring Boot,Hibernate,我以前使用@NotNull验证类的字段,如下所示:@NotNull(message=“供应商ID必须从订单中提取”)。但是,我决定使用@Column(nullable=false)将@NotNull验证替换为数据库级别的约束。是否有任何方法将自定义消息添加到此验证中,类似于验证的@NotNull版本,以便在违反约束的情况下获得指定消息?因为@Column描述了db属性,它不能在您想要的级别进行验证:如果您说@Column(nullable=false),您不是说setter参数不能为null,而

我以前使用@NotNull验证类的字段,如下所示:
@NotNull(message=“供应商ID必须从订单中提取”)
。但是,我决定使用
@Column(nullable=false)
@NotNull
验证替换为数据库级别的约束。是否有任何方法将自定义消息添加到此验证中,类似于验证的
@NotNull
版本,以便在违反约束的情况下获得指定消息?

因为
@Column
描述了db属性,它不能在您想要的级别进行验证:如果您说
@Column(nullable=false)
,您不是说setter参数不能为null,而是说该列不能为null,因此您将在数据库级别进行验证和消息。

实际上,
@Column(nullable=false)
@NotNull
是完全独立的东西

  • 只有在使用hibernate时,
    @列(nullable=false)
    才有意义。违反此约束将导致db级别错误,并显示db特定的错误消息

  • @NotNull
    是的一部分。违反此约束将导致可自定义的应用程序级错误


  • 不,你不能。如果约束将无效,您将收到db特定的错误消息。@SternK在这种情况下,我可以在同一字段上同时使用
    @NotNull
    @Column(nullable=false)
    ?或者这会不会太过分了?是的,你可以。请注意,
    nullable=false
    只有在使用hibernate时才有意义。@SternK是的,我碰巧使用了架构生成。如果你愿意的话,你可以把这个写在一个答案里,这样我就可以接受了。