有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我应该在哪里处理spring数据jpa验证的数据库查询?

我最近一直在使用SpringBoot和SpringDataJPA开发一个API。在将DTO映射到JPA实体之前,我一直在使用hibernate validator的jsr303注释来验证API请求中的DTO

在将实体传递到SpringDataJPA存储库以保存它时,我还在JPA实体上使用相同的HibernateValidator注释进行验证

大多数验证都使用SpringDataJPA存储库来验证传入的值是否在数据库中的特定列表中。然而,最近有人告诉我,在jpa生命周期(验证)期间使用EntityManager是不受支持的,并且遇到了错误,请参见:Hibernate validator causing many to many relationship to not save

我收到的反馈是,使用这些注释来验证持久层中的实体是一个“奇怪”的想法。我的问题是,我应该在哪里验证我的实体?正如我所说,我在restapi层进行了验证,但我不想假设我在与rest层无关的代码中正确地构造了一个实体

我要尝试的一个选项是在实体上使用JSR注释,但在我的服务层方法中使用@Valid验证它们。问题是EntityManager无论如何都会尝试验证这些注释,而我似乎找不到让它忽略它们的方法

当jsr303注释运行良好时,我真的不想手动实现所有验证


共 (0) 个答案