Weblogic EJB 學習筆記(3)精

編輯實體bean的高級課程
1. 怎樣開發主健類
ejb的主健類主要用做持久存儲和ejb容器中的唯一標識符.
通常主健類的字段直接映射到數據庫中的主健字段.
如果主健只是由單個實體bean字段組成.且其數據類型是基本的java類.如string,則bean作者不必開發自定義的主健類.
只需要在配置描述器中指定類的名字和主健字段即可

如果把主健映射到一個用戶定義的類型,或者映射到多個字段,則bean的作者必須寫出自定義的主健類.

主健類必須實現 java.io.serializable,而且包含主健字段.

對于cmp,字段名必須匹配實體bean中的相應的主健字段名,這將使ejb容器能夠把適當的cmp字段賦值到主健類中的相應字段中.

2. 實現hashcode()方法
hashcode() 方法的實現原理是,利用主健字段,經適的處理后,生成并返回一個整數. 這個生成的整數稱為散列碼,用作表格的索引.
對于一個給定的主健,hashcode()方法的返回值應當總是一樣的. 常見做法: 執行"異或" 操作.

3. 實現 equals() 方法
正確地實現equals()方法也需要一定的技巧. 任何equals() 方法的第一行都應當檢查傳遞進來的引用是否是"this", 檢查equals()
方法是否是針對自己的調用. 通常做法: 當容器有一個主健對象時,她要檢查這個主健對象是否已經存在于數據結構中.

接著,equals() 方法需要檢查傳遞進來的主健類的類型. 如果主健類是中繼類(final),可以使用instanceof 進行簡單的檢查.
否則,傳遞進來的參數也許是主健類的子類.在這種情況下,equals() 方法必須使用getClass.equals, 以確保類的類型是匹配的

建議主健類采用終極類. (instanceof 效率要高一些)

最后,equals() 方法需要需要比較傳遞進來的對象的所有值. 如果所有值是相同的,說明對象也是相同的
注意: 要先比較散列碼.

4 實體bean的繼承和異構
實體bean 可以利用java的繼承和異構的特性.

5. 繼承的限制
盡管ejb 規范允許組件之間的繼承,但夜游一些細微的規則限制了怎樣設計和實現一個繼承的ejb.
ejb的規則要求,本地接口的create() 方法返回的遠程接口不能是一個子類,也不能是超類. 實體bean 的ejbreate() 方法也
必須返回主健類型,也不能是一個子類,也不能是超類.
類似的findByPrimaryKey()方法必須使用主健類型作為參數返回遠程接口.
這些要求限制了bean作者對繼承的實現.

6. 繼承和異構的設計模式

注意: 具有繼承和異構特性的實體bean,很重要一點就是要確定一般情況下究竟都需要使用哪一些屬性.

7 . 接口的繼承

通過bean類的繼承性,bean作者只需要在一個地方實現業務方法,其它實體bean就可以共享類中的方法了.

8 使用多個bean類
為本地和遠程接口創建一個基本接口,不是達到異構共享的唯一方法. 另一個常見的做法是
使用等同的本地和遠程接口,但采用不同的bean類實現其中的業務方法.
這種做法類似于使用一個具有若干不同實現的接口.
好處: 客戶不知道或根本不管正在使用哪一種實現,客戶機只對接口進行操作.

9. 實體bean 與鎖

實體bean 不是可重入的或多線程的組件,每個實體bean實例也沒有多線程控制的能力。
一次實體bean 類中的方法也不是同步化的。
實體bean實例不能是多線程的,所以ejb容器必須串行地執行所有的容器方法和業務方法。
這意味著當業務方法正在執行時,ejb容器不能再調用其它方法,比如 ejbPassivate()方法。

并發控制:
一種做法是對每一個事務都激活實體bean實例。同過數據庫的訪問鎖的方式進行并發處理。
一種方法是,每一個主健只保持一個實體bean實例,這樣一次只有一個事務可以訪問實體bean。一旦
前一個事務提交或回滾,才允許另一個事務使用這個實體bean實例。
并發控制策略:
數據庫并發控制:
除非特別情況,應盡量使用默認的數據庫并發控制。
排它性并發控制:

轉載于:https://www.cnblogs.com/hibernate3-example/archive/2012/05/09/2492799.html

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

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

相關文章

Lerna 運行流程剖析

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列Lerna…

手動創建線程池 效果會更好_創建更好的,可訪問的焦點效果

手動創建線程池 效果會更好Most browsers has their own default, outline style for the :focus psuedo-class.大多數瀏覽器對于:focus psuedo-class具有其默認的輪廓樣式。 Chrome’s default outline styleChrome瀏覽器的默認輪廓樣式 This outline style is cr…

C++builder enum類型

C/C code #pragmaoption push -b-enumTThreadPriority { tpIdle, tpLowest, tpLower, tpNormal, tpHigher, tpHighest, tpTimeCritical }; //這是字節型的.理論上說這是可能的最小整形.可以是1Byte, 2Bytes, 4Bytes...#pragmaoption pop#pragmaoption push -benumTThreadPriori…

chrome瀏覽器世界之窗瀏覽器的收藏夾在哪?

今天心血來潮,用一個查重軟件刪除重復文件,結果把chrome瀏覽器和世界之窗瀏覽器的收藏夾給刪除了,導致我保存的好多網頁都沒有了,在瀏覽器本身和網上都沒有找到這兩個瀏覽器默認的收藏夾在哪個位置,只好用DiskGenius 把…

Vue3究竟好在哪里 等推薦

話不多說,這一次花了幾小時精心為大家挑選了30余篇好文,供大家閱讀學習,提升自己的技術視野以及擴展自己的知識儲備。本文閱讀技巧,先粗看標題,感興趣可以都關注一波,一起共同進步。前端從進階到入院框架原…

eazy ui 復選框單選_UI備忘單:單選按鈕,復選框和其他選擇器

eazy ui 復選框單選重點 (Top highlight)Pick me! Pick me! No, pick me! In today’s cheat sheet we will be looking at selectors and how they differ. Unlike most of my other cheat sheets, this will focus on two components (radio buttons and checkboxes) side by…

過濾詞

<?xml version"1.0" encoding"GB2312"?>-<wordList> <word>,</word> <word>.</word> <word><</word> <word>></word> <word>?</word> <word>/</word> <…

VS2010 VC Project的default Include設置

http://blog.csdn.net/jeffchen/article/details/5491435 VS2010與以往的版本一個最大的不同是&#xff1a;VC Directory設置的位置和以前的版本不一樣。VS2010之前&#xff0c;VC Directory的設置都是在IDE的Tools->Options中設置的&#xff1b;VS2010改為&#xff0c;分別…

初級中級高級_初級職位,(半)高級職位

初級中級高級As a recent hire at my new job, as expected, a lot of things seemed scary and overwhelming. The scariest part was not the unfamiliarity with certain tasks or certain tools, but in communicating with higher-level coworkers, managers and bosses. …

如何寫好技術文章(看張鑫旭老師的直播總結

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列本文是…

Fact Table and Dimension Table In My Opinion

23轉載于:https://www.cnblogs.com/answeryou/archive/2012/05/10/2495122.html

iOS 流媒體 基本使用 和方法注意

項目里面需要添加視頻方法 我自定義 選用的是 avplayer 沒選擇 MediaPlayer 原因很簡單 , avplayer 會更容易擴展 有篇博客 也很好地說明了 使用avplayer的優越性 blog.csdn.net/think12/article/details/8549438在iOS開發上&#xff0c;如果遇到需要播放影片&#xff0c;…

figma下載_遷移至Figma

figma下載Being an intuitive and user-friendly tool and having the possibility of real-time collaboration are some of the main reasons people choose to use Figma. But the migration process to Figma may sometimes be painful or time-consuming. 人們選擇使用Fig…

metaWeblog 相關的參數

Function: Creates a new post on your blog. tags如果沒會自動那一個 但是categroies如果與已經建立的不同,就會忽略掉的 可以用 string.replace(\n,).split(,) Parameters: Blog ID – For use in multisite installations, typically 0 for single sites Username – WordPr…

TypeScript 常用的新玩法

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列上周分…

《Programming in Lua 3》讀書筆記(十二)

日期&#xff1a;2014.7.14 PartⅡ Object-Oriented ProgrammingLua中實現面向對象編程。“如同OOP對象&#xff0c;table擁有狀態&#xff1b;如同OOP對象&#xff0c;table擁有標識符---self&#xff0c;用來與其他變量做區分&#xff0c;而且兩個table擁有同樣的值也是…

(轉)AS3中的stage,this,root的區別

要了解這個問題就要先對flash中的顯示對象結構有一個大概的了解&#xff1a; 第一級&#xff1a;舞臺&#xff1b; 第二級&#xff1a;當前SWF&#xff1b; 第三級&#xff1a;各種容器及可視對象&#xff08;如&#xff1a;文本框&#xff0c;位圖……&#xff09;&#xff1b…

面試官是怎樣高效面試的(面試官的“套路”

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列最近正…

微服務負載均衡實現高可用_使用負載平衡實現大容量可用性

微服務負載均衡實現高可用Written by Yona Gidalevitz由Yona Gidalevitz撰寫 Most users of the web are blissfully unaware of the sheer scale of the process responsible for bringing content across the Internet. There are literally miles of Internet between you …

Visual Studio 2008自帶的Windows 系統使用的各種圖標、光標和動畫文件

1&#xff0c;Visual Studio 2008自帶的1000多個 Windows 系統使用的各種圖標、光標和動畫文件 在Visual Studio 2008的安裝目錄下&#xff0c; /Microsoft Visual Studio 9.0/Common7/VS2008ImageLibrary/2052文件夾下面&#xff0c;有一個VS2008ImageLibrary.zip&#xff0c;…