Spring Data JDBC 是否在持久化时验证实体 - 就像 Spring Data JPA 在 hibernate 的帮助下所做的那样?
我有这样的场景:
- 实体(或多或少是实际数据库表的副本)
- EntityDto(数据传输对象),具有验证约束,例如
@NotEmpty
、@Min(5)
等 - Web 层 (Spring MVC),其中 DTO 事物由 Spring 内容进行验证。
鉴于此结构并假设 Spring Data JDBC 不进行验证 - 除了 @Id
之外,我不需要实体中的其他注释吗?
最佳答案
Spring Data JDBC 不进行验证。
将来也不会,因为验证是与持久性正交的问题。
是的,在所描述的情况下,@Id
注释可能就是您所需要的。
尽管我建议有一列使用 @Version
来启用乐观锁定。
我不太喜欢 Bean Validation。验证应该在构造函数中进行,以便首先不可能创建无效的对象。 Spring Data JDBC 支持这一点,因为它支持重要的构造函数。
关于实体验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62388104/