我正在使用Spring Boot,REST,HATEOAS,Hibernate和PostgreSQL的系统后端上工作。为了进行验证,我开始使用that的类extend org.springframework.validation.Validator。它运作良好,但仅适用于前端发出的呼叫。对于后端发出的呼叫(例如使用)EntityManager,它们不会触发。在这种情况下,我已经设法通过使用@Constraintfor 调用了另一个验证器ElementType.TYPE,但是只调用了create和save方法。
extend org.springframework.validation.Validator
EntityManager
@Constraint
ElementType.TYPE
create
save
是否可以使用此验证器来对delete方法进行验证?这里有一个项目,它是我正在处理的项目的非运营子集,其中包含我提到的验证器。
delete
提前致谢。
PS: 我宁愿避免在后端调用存储库方法时手动调用验证器。
我终于找到了答案。在中application.properties,添加:
application.properties
spring.jpa.properties.javax.persistence.validation.group.pre-remove=javax.validation.groups.Default
链接的问题告诉我我需要哪个财产,但我不知道将其放在何处。我尝试使用自定义Java配置甚至persistence.xml配置,但其他几项失败。
persistence.xml
在这里,我了解到“ 创建spring.jpa.properties.*本地时,所有的属性都作为普通的JPA属性(除去前缀)传递EntityManagerFactory。” 所以我只添加了该前缀即可使用。
spring.jpa.properties.*
EntityManagerFactory