Java 世界中关系数据库的主要持久化 API 当然是 JPA,它有自己的 Spring Data 模块。 为什么还有另一个?Spring中文文档

JPA 做了很多事情来帮助开发人员。 除其他事项外,它还跟踪对实体的更改。 它为您进行延迟加载。 它允许您将各种对象构造映射到同样广泛的数据库设计。Spring中文文档

这很棒,让很多事情变得非常容易。 只需看一个基本的 JPA 教程。 但是,对于JPA为什么要做某件事,人们常常感到非常困惑。 此外,在概念上非常简单的事情在 JPA 中变得相当困难。Spring中文文档

Spring Data JDBC 旨在通过采用以下设计决策在概念上更简单:Spring中文文档

  • 如果加载实体,则运行 SQL 语句。 完成此操作后,您将拥有一个完全加载的实体。 不进行延迟加载或缓存。Spring中文文档

  • 如果保存一个实体,它就会被保存。 如果你不这样做,它就不会。 没有肮脏的跟踪,也没有会话。Spring中文文档

  • 有一个关于如何将实体映射到表的简单模型。 它可能只适用于相当简单的情况。 如果你不喜欢这样,你应该编写自己的策略。 Spring Data JDBC 仅提供非常有限的支持,用于使用注释自定义策略。Spring中文文档