java hibernate的使用_《Hibernate快速開始 – 4 – 使用JAVA持久層 API (JPA)教程》

章節目標

使用JPA EntityManagerFactory

使用注解提供映射信息

使用 JPA 接口

本教程可在 entitymanger/ 路徑下下載

4.1. persistence.xml

之前的章節使用了hibernate原生的配置文件hibernate.cfg.xml。然而,JPA中定義了不同的的自助配置文件persistence.xml。這個啟動過程在JPA文檔里面有詳細定義。在JAVA SE環境中,持久層的提供者(在此為hibernate)是根據路徑MEATA-INF/persistence.xml找到所有JPA配置文件的前提。

案例 10.?persistence.xml

...

persistence.xml文件應為每個“persistent unit”提供一個唯一值。當程序得到javax.persistence.EntityManangerFactory的定義是要通過這個值去找到配置文件。

有關設置的定義已包括在Hibernate配置文件的章節中。 以javax.persistence為前綴的元素可在需要的時候使用。需要注意的是,其余的Hibernate相關的設置名稱現在都以hibernate.為前綴。

另外,元素依舊與2.1.Hibernate配置文件的章節中描述的一樣。

4.2. 注解過的實體類

這里的實體與2.1.Hibernate配置文件的章節中描述的一樣

4.3. 代碼實例

之前的教程使用的是hibernate原生接口,這個章節使用的是JPA接口

案例 11. 使用javax.persistence.EntityManagerFactory

protected void setUp() throws Exception {

sessionFactory = Persistence.createEntityManagerFactory( "org.hibernate.tutorial.jpa" );

}

注意,此處的持久層名稱“org.hibernate.tutorial.jpa”與persistence.xml中一致。

案例 12. 存儲(有持久屬性)實體

EntityManager entityManager = sessionFactory.createEntityManager();

entityManager.getTransaction().begin();

entityManager.persist( new Event( "Our very first event!", new Date() ) );

entityManager.persist( new Event( "A follow up event", new Date() ) );

entityManager.getTransaction().commit();

entityManager.close();

代碼與之前存儲實體的章節中一樣。javax.persistence.EntityManager接口替換了org.hibernate.Session接口。JPA中將這個操作稱作“persist”,有別于“save”。

案例 13. 獲得實體集合

entityManager = sessionFactory.createEntityManager();

entityManager.getTransaction().begin();

List result = entityManager.createQuery( "from Event", Event.class ).getResultList();

for ( Event event : result ) {

System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );

}

entityManager.getTransaction().commit();

entityManager.close();

此處代碼與之前的獲得實體集合相似。

4.4. 更進一步

練習

配置一個ELB Session Bean來研究容器管理持久層的用法,包括stateless和stateful兩種情況。

用CDI為基礎注入的監聽器來配置一個JMS事件管理器。

d0c1501a6d8bb921cf36400dc89de69f.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272746.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272746.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272746.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP消息中Header頭部信息整理

1、HTTP請求方式GET向Web服務器請求一個文件POST向Web服務器發送數據讓Web服務器進行處理PUT向Web服務器發送數據并存儲在Web服務器內部HEAD檢查一個對象是否存在DELETE從Web服務器上刪除一個文件CONNECT對通道提供支持TRACE跟蹤到服務器的路徑OPTIONS查詢Web服務器的性能說明&…

gdb命令中attach使用

[測試程序] 我們先看看我們的測試程序: /* in eg1.c */ int wib(int no1, int no2) { int result, diff; diff no1 - no2; result no1 / diff; return result; } int main() { pid_t pid; pid fork(); if (pid &…

java%4d_java積累

數組的使用package javaDemo;import java.util.*;/**** author Administrator* version 1.0***/public class test {public static void main(String[] args){String[] greeting new String[3];greeting[0] "Welcome to Core Java";greeting[1] "by Cay Hors…

查詢CPU占用高的SQL語句的解決方案

觸發器造成死鎖、作業多且頻繁、中間表的大量使用、游標的大量使用、索引的設計不合理、事務操作頻繁、SQL語句設計不合理,都會造成查詢效率低下、影響服務器性能的發揮。我們可以使用sql server自帶的性能分析追蹤工具sql profiler分析數據庫設計所產生問題的來源&…

父類與子類之間的關系

1) 運行課件中的例題ParentChildTest.java,回答下列問題: a) 左邊的程序運行結果是什么? b) 你如何解釋會得到這樣的輸出? 第一個創建一個Parent對象,調用的是父類構造方法 第二個創建一個Child對象,調用的…

php獲取到的json數據如何處理_php – 如何從API獲取JSON數據

我使用過雅虎的符號查找它以JSON格式返回數據.喜歡以下YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet": {"Query": "ya","Result": [{"symbol": "YHOO","name": "Yahoo! Inc.","…

.NET開發中應該遵循的幾點建議

1、始終控制類的大小那些超大的類在嘗試做太多的事情,這違反了單一職責原則, 為什么一定要將兩個職責分離到單獨的類中呢?因為每一個職責都是變化的中心。在需求變更時,這個變更將會出現在負責該職責的類中。如果一個類承擔了多個…

Linux下jetty報java.lang.OutOfMemoryError: PermGen space及Jetty內存配置調優解決方案

Linux下的jetty報java.lang.OutOfMemoryError: PermGen space及Jetty內存配置調優解決方案問題linux的jetty下發布程序后再啟動jetty服務時,發現啟動不了,從日志中找到報java.lang.OutOfMemoryError: PermGen space。原因分析PermGen space,全…

微博php sdk,手機第三方新浪微博登錄php api實現分析

提供api,POST方式,根據傳遞過來的微博uid/appkey,判斷該用戶的ID是否在自己的數據庫中。如果有,直接登錄返回用戶登錄api的json。如果沒有,就將該用戶的IDtoken請求微博用戶信息api:http://open.weibo.com/…

13條只有程序員才能懂的內涵段子

一、bug跟蚊子的相似之處:1、不知道藏在哪里。2、不知道有多少。3、總是在你即將睡覺休息的時候出現。二、A:最近在看《一拳超人》,覺得咱們程序猿跟埼玉老師有點像啊!B:哪里像了?A:越禿越強&am…

Posix消息隊列

一、函數 mq_open 頭文件 mqueue.h; 原型 mqd_t mq_open(const char *name, int oflag, .../*mode_t mode,struct mq_attr* attr*/); 函數功能 創建消息隊列; 參數 name :消息隊列的名字,根據消息隊列的規則,為了更好的…

php 等值線,【地理】攻克等值線的六大法門

3.等值線數值大小的判斷方法(1)通常情況下,據圖中已標注的等值線進行分析標注,標注時注意:①等值線數值的遞變規律;②相鄰兩條等值線差值的大小。(2)在閉合的等值線上,除據以上方法判斷外,還可用“大于…

4步win7下簡單FTP服務器搭建(試驗成功)

本文介紹通過win7自帶的IIS來搭建一個只能實現基本功能的FTP服務器,第一次裝好WIN7后我愣是沒整出來,后來查了一下網上資料經過試驗后搭建成功,其實原理和步驟與windows前期的版本差不多,主要是對新的操作系統還不是很熟悉。相信用…

C#開發模式——單例模式

一、單例模式簡介單例模式是為保證一個對象,在程序運行的任何時刻只有一個實例存在,我們把這種實現方式稱之為“單例模式”。二、單例模式的核心單例類只有一個實例存在單例類提供一個全局訪問點單例類通過自己創建唯一實例單例類對外所有訪問對象都提供一個唯一實例…

video.min.js php,在WordPress中使用videojs來播放七牛私有空間視頻

首先,在主題函數文件functions.php中添加一個獲取七牛下載憑證的函數。這部分參考function qiniu_download_url($url){$url trim($url, /);$deadline strtotime(1 hour);$url sprintf(%s?e%s, $url, $deadline);$sign hash_hmac(sha1, $url, SECRET_KEY, true)…

關于HTTP和HTTPS的區別

一HTTP和HTTPS的基本概念1、HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效&#xf…

Android 實現切換主題皮膚功能(類似于眾多app中的 夜間模式,主題包等)

首先來個最簡單的一鍵切換主題功能&#xff0c;就做個白天和晚上的主題好了。 先看我們的styles文件&#xff1a; 1 <resources>2 3 <!-- Base application theme. -->4 <style name"AppTheme" parent"Theme.AppCompat.Light.DarkAction…

訂閱號 圖文回復php,微信開發(PHP實現訂閱號的公眾號配置和自動回復)

首先在微信公眾平臺(網址&#xff1a;https://mp.weixin.qq.com)申請一個訂閱號&#xff0c;然后在開發里找到開發者工具點擊公眾平臺測試賬號&#xff0c;在測試賬號內進行微信開發實驗。 1. 設置一個自己的有效的域名網址和TOKEN(就是暗號)&#xff0c;TOKEN一定要與PHP代…

為何技術領域中女程序員較少?

對于大多數人來說&#xff0c;他們意識中的科技人就是扎克伯格&#xff0c;喬布斯或者是比爾蓋茨——經常出現在新聞里的典型的男科技企業家。其實在科技領域還有一些女性&#xff0c;比如蘇珊沃西基&#xff08;YouTube的CEO&#xff09;和吉尼羅曼提&#xff08;IBM的CEO&…

This version of MySQL doesn't yet support 'LIMIT IN/ALL/ANY/SOME subquery 解決方法

This version of MySQL doesnt yet support LIMIT & IN/ALL/ANY/SOME subquery的意思是&#xff0c;這版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查詢&#xff0c;即是支持非 IN/ALL/ANY/SOME 子查詢的 LIMIT 子查詢。 也就是說&#xff0c;這樣的語句是不能…