JPA:bean 验证对预删除意味着什么?
JPA: what does bean validation mean for pre-remove?
JPA:bean 验证对于预删除意味着什么?
public class Foo {
@Past
private Date date;
}
删除实体Foo时,如果日期有效(过去的日期),实体Foo可以删除还是不能删除?删除实体时,为什么要关心实体是否有效?
如果为 JPA 激活了 Bean 验证,则默认行为是在保留前和更新前验证 events.And 验证的约束是默认组(默认)中的约束。
要激活删除前事件的验证,您必须将 persistence.xml 文件上的配置 属性 javax.persistence.validation.group.pre-remove
设置为您想要的验证组的值申请。
例如,您可以创建组(这只是一个空界面):
public interface DeleteGroup {
}
并对要测试的字段添加约束:
public class Foo {
@Past(groups = {DeleteGroup.class})
private Date date;
}
并在 persistence.xml 上设置 属性:
<property name="javax.persistence.validation.group.pre-remove" value="yourpackage.DeleteGroup" />
然后,在删除事件中,将验证该约束。它不会在插入前或更新前验证,除非您也将它分配给默认组。
如果你想确保一条记录在没有被处理的情况下不能被删除(例如字段 canBeDeleted
是 true
),或者满足一些更复杂的标准。
JPA:bean 验证对于预删除意味着什么?
public class Foo {
@Past
private Date date;
}
删除实体Foo时,如果日期有效(过去的日期),实体Foo可以删除还是不能删除?删除实体时,为什么要关心实体是否有效?
如果为 JPA 激活了 Bean 验证,则默认行为是在保留前和更新前验证 events.And 验证的约束是默认组(默认)中的约束。
要激活删除前事件的验证,您必须将 persistence.xml 文件上的配置 属性 javax.persistence.validation.group.pre-remove
设置为您想要的验证组的值申请。
例如,您可以创建组(这只是一个空界面):
public interface DeleteGroup {
}
并对要测试的字段添加约束:
public class Foo {
@Past(groups = {DeleteGroup.class})
private Date date;
}
并在 persistence.xml 上设置 属性:
<property name="javax.persistence.validation.group.pre-remove" value="yourpackage.DeleteGroup" />
然后,在删除事件中,将验证该约束。它不会在插入前或更新前验证,除非您也将它分配给默认组。
如果你想确保一条记录在没有被处理的情况下不能被删除(例如字段 canBeDeleted
是 true
),或者满足一些更复杂的标准。