現在ejb3實體bean是純粹的pojo.實際上表達了和hibernate持久化實體物件同樣的概念。他們的對映都通過jdk5.0注釋來定義(ejb3規範中的xml描述語法至今還沒有定下來)。注釋分為兩個部分,分別是邏輯對映注釋和物理對映注釋,通過邏輯對映注釋可用描述物件模型,類之間的關係等等,而物理對映注釋則描述了物理的schema,表,列,索引等等。下面外面在**中將混合使用這兩種型別的注釋
(一)宣告實體
@entity
pojo用@entity進行實體注釋
@table
@table是類的一級注釋,通過它可用為實體指定表(table),目錄(catalog),和schema的名字,如果沒有@table,那麼系統自動使用預設值:實體的短類名(不帶包名)
@version
可用在實體bean中使用@version新增樂觀鎖支援。
根據ejb3規範,version列可以使用numeric型別(推薦方式)也可以使用timestamp型別。hibernate支援任何自定義型別,只要該型別實現了userversiontype.
(二)對映簡單屬性
實體bean中的所有非static、非transient的屬性都可以被持久化。同時使用@transient對屬性進行註解同樣不不會被持久化。
@column
使用@column可將屬性對映到列。
@column(name = "列名" length = 長度)
例如:@column(name = "name" length = 20)
public string getname()
在hibernate的應用中提供了更加豐富的主鍵生產策略。
@org.hibernate.annotations.genericgeneracor允許定義乙個hibernate特定的id生成器。
例:@id
@generatedvalue(generator = "system-uuid")[該屬性名自定義]
@genericgenerator(name = " system-uuid ", strategy = "uuid")
[name可自定義,但是strategy屬性必須是hibernate中有效的主鍵策略]
@column (name = "user_id")
private integer userid;
@id@generatedvalue(generator = "hilo")
@genericgenerator(name = "hilo", strategy = "hilo")
@column (name = "user_id")
private integer userid;
EJB3使用小記
這陣子在專案裡面用ejb3做乙個資料同步的功能,在開發過程中那個遇到幾個技術點,簡單記錄下。1.因為資料量有點大 百萬使用者 所以必須迴圈獲取記錄,平衡下來,每次取數1k 3k之間,同時取數和對返回的更新都需要記錄狀態,為了單條記錄錯誤不影響整個流程,所以取消了整個方法的事務,僅控制在單個操作。簡單...
EJB3 中文版 第三集 實體Bean
內容 1.資料庫資訊的設定 url jdbc mysql localhost titan class com.mysql.jdbc.driver 使用者名稱 root 密碼 1234 2.使用dali和jsr220 orm m2外掛程式,主要是為了方便和易於理解 dali生成的不是我們需要的最終檔案...
EJB3 入門檔案(二)
了解基本的 session bean 與 message driven bean 撰寫方式,接下來看一些生命週期 攔截器 timer 等服務。來看看 session bean 與 message driven bean 的生命週期與回呼方法。攔截器 interceptor 攔截器可以介入方 法呼叫前...