javascript
Spring Data JPA 从入门到精通~javax.persistence概况介绍
雖然 Spring Data JPA 已經(jīng)對數(shù)據(jù)的操作封裝的很好了,約定大于配置的思想,幫我們默認(rèn)了很多東西。JPA(Java 持久性 API)是存儲業(yè)務(wù)實(shí)體關(guān)聯(lián)的實(shí)體的來源,它顯示了如何定義一個(gè)面向普通 Java 對象(POJO)作為一個(gè)實(shí)體,以及如何與管理關(guān)系實(shí)體,提供了一套標(biāo)準(zhǔn)。因此,javax.persistence 下面的有些注解我們還是必須要去了解的,便于更好的提高工作效率。
(1)javax.persistence 我們打開源碼位于 hibernate-jpa-**.jar 包里面。
依賴關(guān)系,通過 Intellij Idea 的 Maven 插件直接分析一下其依賴,也可以用$ mvn dependency:tree分析,如下:
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.0.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile [INFO] | | \- org.springframework:spring-jdbc:jar:5.0.4.RELEASE:compile [INFO] | +- org.hibernate:hibernate-core:jar:5.2.14.Final:compile [INFO] | | +- org.javassist:javassist:jar:3.22.0-GA:compile(2)我們也通過前面說到的 Intellij Idea 的 Diagram 來看一下此模塊的類的關(guān)鍵關(guān)系。
(3)下圖顯示了 JPA 的類的層次結(jié)構(gòu),它顯示核心類和 JPA 接口。
(4)下表描述了每個(gè)在上述架構(gòu)的顯示單元。
| 單元 | 描述 |
| EntityManagerFactory | 這是一個(gè)?EntityManager?的工廠類,它創(chuàng)建并管理多個(gè)?EntityManager?實(shí)例 |
| EntityManager | 這是一個(gè)接口,它管理的持久化操作的對象,它的工作原理類似工廠的查詢實(shí)例 |
| Entity | 實(shí)體是持久性對象,是存儲在數(shù)據(jù)庫中的記錄 |
| EntityTransaction | 它與?EntityManager?是一對一的關(guān)系,對于每一個(gè)?EntityManager,操作是由?EntityTransaction?類維護(hù) |
| Persistence | 這個(gè)類包含靜態(tài)方法來獲取?EntityManagerFactory?實(shí)例 |
| Query | 該接口由每個(gè) JPA 供應(yīng)商,能夠獲得符合標(biāo)準(zhǔn)的關(guān)系對象 |
上述的類和接口用于存儲實(shí)體到數(shù)據(jù)庫的一個(gè)記錄,幫助程序員通過減少自己編寫代碼來將數(shù)據(jù)存儲到數(shù)據(jù)庫中,使他們能夠?qū)W⒂诟匾臉I(yè)務(wù)活動代碼,如數(shù)據(jù)庫表映射的類編寫代碼。
下面我們主要介紹一下,在 Entity 里面常用的注解有哪些,還有很多沒有介紹到的,可以直接到包的源碼里面進(jìn)行查找和分析。
總結(jié)
以上是生活随笔為你收集整理的Spring Data JPA 从入门到精通~javax.persistence概况介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Facade 和 Mediator 模式
- 下一篇: 活用ognl表达式