為何選擇 Spring Data JDBC?

在 Java 世界中,關聯式資料庫的主要持久化 API 當然是 JPA,它有自己的 Spring Data 模組。為何還有另一個?

JPA 做了很多事情來幫助開發人員。其中,它追蹤實體的變更。它為您執行延遲載入。它讓您可以將各種物件結構對應到同樣多樣的資料庫設計。

這很棒,並且讓很多事情變得非常容易。只要看看基本的 JPA 教學即可。但通常會對 JPA 為何執行某件事感到非常困惑。此外,概念上非常簡單的事情,使用 JPA 會變得相當困難。

Spring Data JDBC 旨在概念上更簡單,透過擁抱以下設計決策

  • 如果您載入實體,則會執行 SQL 陳述式。完成後,您將擁有完全載入的實體。不執行延遲載入或快取。

  • 如果您儲存實體,它就會被儲存。如果您不儲存,它就不會被儲存。沒有髒追蹤,也沒有 session。

  • 有一個簡單的模型,說明如何將實體對應到表格。它可能只適用於相當簡單的情況。如果您不喜歡這樣,您應該編寫自己的策略。Spring Data JDBC 僅提供非常有限的支援,以使用註解自訂策略。