经过两天的研究,我发现了如何进行这项工作。
显然,指定
INSERT仅在其上进行验证的验证并不是那么困难。唯一需要做的更改是将这些验证设置为一个特定的验证组,并在
INSERT/
pre-persist事件期间对该组进行验证。
首先,我创建了一个称为
platform.persistence.InsertOnlyValidations组的接口,该接口将仅在预持久化期间进行验证。
然后,我将该组添加到了
username现场验证中:
@Column(name = "username")@Size(min = 4, max = 40, groups = {InsertOnlyValidations.class})@Pattern(regexp = "^.*[a-zA-Z]+.*$", groups = {InsertOnlyValidations.class})private String username;
这指示hibernate状态不要将这些验证用作默认组的一部分。现在,我需要指示hibernate模式仅在插入期间验证这些验证规则。
这样做的方法非常简单,我需要传递property
javax.persistence.validation.group.pre-persist,同时指示在
pre-persist事件期间将验证哪些组:
javax.persistence.validation.group.pre-persist=javax.validation.groups.Default,platform.persistence.InsertOnlyValidations
这指示hibernate状态,在
pre-persist事件期间
javax.validation.groups.Default,除
InsertOnlyValidations组中包括的所有验证之外,还将验证所有默认验证()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)