為什麼選擇 Spring Data JDBC?
Java 世界中關係型資料庫的主要持久化 API 當然是 JPA,它有自己的 Spring Data 模組。為什麼還有另一個?
JPA 為了幫助開發者做了很多事情。其中,它跟蹤實體的更改。它為你做延遲載入。它讓你將各種物件結構對映到同樣廣泛的資料庫設計中。
這很棒,並且使很多事情變得非常容易。只需看看一個基本的 JPA 教程即可。但是,JPA 為什麼會做某些事情,通常會讓人感到非常困惑。此外,概念上非常簡單的事情在 JPA 中變得相當困難。
Spring Data JDBC 旨在透過採用以下設計決策來在概念上更加簡單
-
如果你載入一個實體,SQL 語句會被執行。完成此操作後,你將擁有一個完全載入的實體。不進行延遲載入或快取。
-
如果你儲存一個實體,它將被儲存。如果你不這樣做,它就不會。沒有髒資料跟蹤,也沒有會話。
-
有一個簡單的模型,說明如何將實體對映到表。它可能只適用於相當簡單的案例。如果你不喜歡這樣,你應該編寫自己的策略。Spring Data JDBC 僅提供非常有限的支援,以使用註解自定義策略。