我发现这个implementation,基本上做我想要的。如何在hibernate-validator中创建一个可选/可空属性?
@ConstraintComposition(OR)
@NotBlank
@Null
@ReportAsSingleViolation
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = {})
public @interface NullOrNotBlank {
String message() default "{org.hibernate.validator.constraints.NullOrNotBlank.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
,我用它作为
@field:NullOrNotBlank
@field:Size(max = 50)
var middleName: String? = null,
我也试过
@field:NullOrNotBlank
@field:Size(max = 50)
@field:Column(nullable = true)
var middleName: String? = null,
但这种复合材料的限制使得在数据库(MySQL的)不能为空场。所以会发生什么,直到我将实体保存到数据库才能正常工作。
NullOrNotBlank'的'生成列是'不NULL'会抛出时,我将与空财产 – jasperagrante
嗨,我想你试着使用'hbm2ddl.auto'更新约束的实体错误在一列中。如果该列存在,它根本不会更新约束。所以你应该手动更新它。请看这里:https://stackoverflow.com/questions/15978368/hibernate-hbm2ddl-auto-update-doesnt-update-column-definitions-in-mysql/26681592 –
现在呢?如果没有问题。你应该删除你的问题,因为它是重复的。 –