一:什麼是Spring Data JPA:
1:Spring Data JPA是在JavaEE5.0後出現的—用於對象持久化的API
2:使得應用文件以統一的方式訪問持久層
二:JPA與Hibernate的關係:
1:JPA 是 Hibernate 的一個抽象(就像JDBC和JDBC驅動的關係);
2:JPA 是規範:JPA 本質上就是一種 ORM 規範,不是ORM 框架,這是因爲 JPA 並未提供 ORM 實現,它只是制訂了一些規範,提供了一些編程的 API 接口,但具體實現則由 ORM 廠商提供實現;
3:Hibernate 是實現:Hibernate 除了作爲 ORM 框架之外,它也是一種 JPA 實現
從功能上來說, JPA 是 Hibernate 功能的一個子集
三:Spring Data JPA的優勢:
1:標準化: 提供相同的 API,這保證了基於JPA 開發的企業應用能夠經過少量的修改就能夠在不同的 JPA 框架下運行。
2:簡單易用,集成方便: JPA 的主要目標之一就是提供更加簡單的編程模型,在 JPA 框架下創建實體和創建 Java 類一樣簡單,只需要使用 javax.persistence.Entity 進行註解;JPA 的框架和接口也都非常簡單。
3:可媲美JDBC的查詢能力: JPA的查詢語言是面向對象的,JPA定義了獨特的JPQL,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級查詢特性,甚至還能夠支持子查詢。
4:支持面向對象的高級特性: JPA 中能夠支持面向對象的高級特性,如類之間的繼承、多態和類之間的複雜關係,最大限度的使用面向對象的模型
四:Spring Data JPA使用自定義查詢的時候一些注意問題:
一:正確的寫法
當查詢內容與返回值泛型屬性內容完全一致(個數,類型),有 返回值,不報錯
當查詢內容與返回值泛型內容不同的時候,不能寫<對象>,應該直接返回一個list 或者list