Java JPA知識的理解與總結

2021-07-28 15:13:12 字數 1526 閱讀 2067

原文:

jpa的總體思想和現有hibernate、toplink,jdo等orm框架大體一致。總的來說,jpa包括以下3方面的技術:

1. orm對映元資料,jpa支援xml和jdk 5.0註解兩種元資料的形式,元資料描述物件和表之間的對映關係,框架據此將實體物件持久化到資料庫表中;

2. jpa的api,用來操作實體物件,執行crud操作,框架在後台替我們完成所有的事情,開發者從繁瑣的jdbc和sql**中解脫出來。

3. 查詢語言,這是持久化操作中很重要的乙個方面,通過物件導向而非面向資料庫的查詢語言查詢資料,避免程式的sql語句緊密耦合。

基本對映

2. id生成策略

id對應資料庫表的主鍵,是保證唯一性的重要屬性。jpa提供了以下幾種id生成策略

(1) generatortype.auto ,由jpa自動生成

(2) generationtype.identity,使用資料庫的自增長字段,需要資料庫的支援(如sql server、mysql、db2、derby等)

(3) generationtype.sequence,使用資料庫的序列號,需要資料庫的支援(如oracle)

(4) generationtype.table,使用指定的資料庫表記錄id的增長 需要定義乙個tablegenerator,在@generatedvalue中引用。例如:

@tablegenerator( name=」mygenerator」, table=」generatortable」, pkcolumnname = 「entityname」, pkcolumnvalue=」myentity」, valuecolumnname = 「pkvalue」, allocationsize=1 )

@generatedvalue(strategy = generationtype.table,generator=」mygenerator」)

繼承關係

jpa通過在父類增加@inheritance(strategy=inheritancetype.***)來宣告繼承關係。a支援3種繼承策略:

(1) 單錶繼承(inheritancetype.singletable),所有繼承樹上的類共用一張表,在父類指定(@discriminatorcolumn)宣告並在每個類指定@discriminatorvalue來區分型別。

(2) 類表繼承(inheritancetype.joined),父子類共同的部分公用一張表,其餘部分儲存到各自的表,通過join進行關聯。

(3) 具體表繼承(inheritancetype.tableperclass),每個具體類對映到自己的表。

其中1和2能夠支援多型,但是1需要允許欄位為null,2需要多個join關係;3最適合關聯式資料庫,對多型支援不好。具體應用時根據需要取捨。

集合框架的理解與總結

關於集合框架的理解與總結 集合框架的各種關係 來自網路 集合框架實際上用得較多的有 list,set,map和iterator。list 有序集合,允許重複的元素,常用的實現類有arraylist,linkedlist。listiterator是專門用來遍歷list的,除了允許 iterator 介...

this關鍵字的理解與總結

1.this關鍵字的含義 簡單說,this就是屬性或方法 當前 所在的物件。this都有乙個共同點 它總是返回乙個物件。舉例 var a a.describe 姓名 張三 由於物件的屬性可以賦給另乙個物件,所以屬性所在的當前物件是可變的,即this的指向是可變的。var a var b b.desc...

Cpp知識記錄與總結

死迴圈case1 在寫學習 c 資料結構與演算法 的時候,鍊錶那一章有乙個圖書館程式,假如輸入錯誤之後 比如需要輸入乙個整數,卻輸入了乙個字元 就陷入了死迴圈。下面是乙個示例 include using namespace std intmain return0 執行該程式,輸入 1 1 23546...