【发布时间】:2018-10-05 13:33:45
【问题描述】:
我有一个带有 JPA 存储库的 Spring 应用程序。现在我想添加一些验证。我找到了几种解决方案,但没有一个是完美的,我不知道在这种情况下应该使用哪种方法:
1.) 我在我的模型对象中使用验证注释(例如@NotNull)。但这会产生一个无用的休息错误响应,例如 ""Internal Server Error","message":"Could not commit JPA transaction; "
2.) 我正在使用 'Validator' 接口进行自定义验证,但我收到 spring“编译器”错误“验证器拼写错误”
3.) 一些教程使用“ConstraintValidator”接口
4.) 一些教程编写了用于验证的自定义休息方法。
我应该什么时候使用哪个以及如何解决我的问题?
【问题讨论】:
-
您的问题到底是什么?你应该选择对你最不利的那个。
-
是的,选择一个适合你的。就像选择你喜欢工作的框架/工具一样
-
一般来说你的对象会通过多重验证。如果您有一个休息端点,您应该在调用存储库保存方法并返回 HTTP 响应之前进行验证。此验证应通过约束加倍,以确保在数据库中保持一致。不用担心,在一般的 Web 应用程序中,您会在客户端进行额外的验证。
标签: java spring spring-data-jpa spring-data spring-rest