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