jpa雜記

jpa中persistence.xml配置:

 

<properties>

<property name="hibernate.show_sql" value="true" />      

  <property name="hibernate.hbm2ddl.auto" value="create-drop" />

</properties>

 

其中第二個配置項的value可取值:

validate      加載hibernate時,驗證創建數據庫表結構

create        每次加載hibernate,重新創建數據庫表結構,這就是導致數據庫表數據丟失的原因。

create-drop   加載hibernate時創建,退出是刪除表結構

update        加載hibernate自動更新數據庫結構

none 應該是不做任何操作

 

 

 

JPA:用於規範現有的ORM技術,面對JPA規範編程,是一種標準,而如hibernate、JDO、Toplink則是對應的產品

包括3方面的技術:

1、ORM映射元數據:支持XML和JDK5.0註解,元數據描述對象和表之間的映射關係

2、Java持久化API:操作實體對象,執行CRUD操作

3、查詢語言JPQL:

 

hibernate核心包:distribution,註解包:annotations以及針對JPA的實現包entitymanager

 

事務類型:本地事務和全局事務

 

轉賬:1、mysql 2、Oracle

 

1>update mysql set amount=amount-XX where id = XXX(mysql)

2>update mysql set amount=amount+XX where id = YYY(Oracle)

使兩個語句在同一事務中執行

jdbc時需要設置連接 

connection1-->mysql,connection1.setAutoCommit(false),

connection2-->oracle,connection2.setAutoCommit(false),

執行語句,

再Commit

但一個事務只能在一個connection中提交,所以就需要全局事務

 

全局事務:

JTA.getUserTransaction().begin();

執行操作

JTA.getUserTransaction().commit);

 

2次提交協議:先預提交數據庫,數據庫返回提交結果boolean值,如果所有操作都是true,則真正提交,否則事務失敗,回滾

 

GenerationType.TABLE以表的方式生成組件值(還不清楚)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章