为什么使用 Spring Data JDBC?
Java 世界中关系数据库的主要持久化 API 肯定是 JPA,它有自己的 Spring Data 模块。为什么还有另一个?
JPA 做了很多事情来帮助开发者。除其他事项外,它跟踪对实体的更改。它为您进行延迟加载。它允许您将各种对象构造映射到同样广泛的数据库设计。
这很好,让很多事情变得非常容易。只需看看一个基本的 JPA 教程。但通常让人非常困惑的是 JPA 为什么会做某件事。此外,在概念上非常简单的事情在 JPA 中变得相当困难。
Spring Data JDBC 旨在在概念上更加简单,通过采用以下设计决策
-
如果您加载一个实体,则会运行 SQL 语句。一旦完成,您就拥有一个完全加载的实体。不会进行延迟加载或缓存。
-
如果您保存一个实体,则会保存它。如果您不保存,则不会保存。没有脏跟踪和会话。
-
有一个简单的模型,说明如何将实体映射到表。它可能只适用于相当简单的案例。如果您不喜欢,您应该编码自己的策略。Spring Data JDBC 仅提供非常有限的支持,使用注释自定义策略。