1

如何在删除之前使用 BeanValidation 验证记录?例如,我只能在executeDate字段为将来时删除记录。

我在我的项目中使用了成功的 beanvalidation。它是基于注释的配置。我通过@Valid在 Controller 方法上的注释来使用它。它是基于 Spring 的 MVC 应用程序。

我的环境:

<hibernate4.core.version>4.2.1.Final</hibernate4.core.version>
<spring.version>3.2.2.RELEASE</spring.version>
<hibernate.search.version>4.2.0.Final</hibernate.search.version>

编辑:
我已经看到了:hibernate 验证器 - 创建、更新、删除和 Hibernate 文档的不同组,但对我来说还不清楚。如果到目前为止我有验证工作,我只需要添加删除的特殊情况吗?我很困惑只需要执行哪些步骤才能获得这一功能。

4

3 回答 3

1

添加到您的持久性配置

<property name="javax.persistence.validation.group.pre-remov">MyDeleteGroup</property>

将此注释添加到您的日期字段

@Past(groups=MyDeleteGroup.class)

删除组MyDeleteGroup只是一个标记界面,如javax.validation.groups.Default

于 2013-07-24T10:11:14.793 回答
1

对于 Spring Boot 用户:

应用程序.yml

spring:
  jpa:
    properties:
      javax:
        persistence:
          validation:
            group:
             pre-remove: com.your_package.MyDeleteGroup

或者

应用程序属性

spring.jpa.properties.javax.persistence.validation.group.pre-remove=com.your_package.MyDeleteGroup
于 2019-09-26T09:25:44.313 回答
0

请参阅此链接以获取 BeanValidation 文档

您可以为您的案例使用 @Past 注释

见第 6.1 节

<event type="pre-delete">
    <listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
于 2013-07-24T09:29:23.693 回答