仅在保存(插入)时进行休眠验证

仅在保存(插入)时进行休眠验证,第1张

仅在保存(插入)时进行休眠验证

经过两天的研究,我发现了如何进行这项工作。
显然,指定

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
组中包括的所有验证之外,还将验证所有默认验证()。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5442572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存