为什么选择 Spring Data JDBC?
Java 世界中关系数据库的主要持久性 API 当然是 JPA,它有自己的 Spring Data 模块。 为什么还有另一个?
JPA 为了帮助开发人员做了很多事情。 此外,它还跟踪对实体的更改。 它会为你执行延迟加载。 它允许您将各种对象结构映射到同样广泛的数据库设计。
这很棒,让很多事情变得非常简单。 只需看一下基本的 JPA 教程就知道了。 但是,对于 JPA 为什么要做某件事,它经常会让人感到困惑。 此外,在概念上非常简单的事情在 JPA 中变得相当困难。
Spring Data JDBC 旨在通过采用以下设计决策,在概念上变得更加简单:
-
如果加载实体,则 SQL 语句将运行。 完成此操作后,您将拥有一个完全加载的实体。 不进行延迟加载或缓存。
-
如果您保存一个实体,它将被保存。 如果不这样做,则不会。 没有脏跟踪,也没有会话。
-
有一个关于如何将实体映射到表的简单模型。 它可能只适用于相当简单的情况。 如果您不喜欢这样,您应该编写自己的策略。 Spring Data JDBC 仅为使用 Comments 自定义策略提供非常有限的支持。