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