成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分析Hibernate映像文件

開發 后端
這里介紹Hibernate映像文件實例,我們不想麻煩Hibernate去了解抽象父類,相對的,我們只要保證每個持久化對象的映射文件包含一個id項和一個帶有unsaved- value="null"屬性的version標簽。

本文向大家介紹Hibernate映像文件實例,可能好多人還不了解Hibernate映像文件,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

Hibernate映像文件實例

們已經從改用這樣的純凈的對象id中獲取了不少好處。我們對equals()和hashCode()方法的實現更加簡單而且容易閱讀。這些方法再也不易出錯而且無論在保存對象之前還是之后,它們都能和Collection一起正常工作。Hibernate也能夠變的更快一些,這是因為在保存新的對象之前它再也不需要從數據庫讀取一個序列值。此外,新定義的equals()和hashCode()對于一個包含 id對象的對象來說是具有通用性的。這意味著我們可以把這些方法移動到一個抽象的父類當中去。我們不再需要為每一個域對象重新實現equals()和 hashCode(),而且我們也不再需要考慮對于一個類來說哪些字段的組合是***且不變的。我們只要簡單地繼承這個抽象類。當然,我們沒必要強迫我們的域對象繼承一個父類,所以我們定義了一個接口來保證設計的靈活性。

  1. public interface PersistentObject {   
  2. public String getId();  
  3. public void setId(String id);  
  4. public Integer getVersion();  
  5. public void setVersion(Integer version);  
  6. }  
  7. public abstract class AbstractPersistentObject implements PersistentObject {  
  8. private String id = IdGenerator.createId();   
  9. private Integer version;  
  10. public String getId() { return id;   
  11. }  
  12. public void setId(String id) { this.id = id; }  
  13. public Integer getVersion() { return version; }  
  14. public void setVersion(Integer version) { this.version = version; }  
  15. public boolean equals(Object o) {   
  16. if (this == o) return true;  
  17. if (o == null || !(o instanceof PersistentObject)) { return false; }  
  18. PersistentObject other = (PersistentObject)o;  
  19. // if the id is missing,   
  20. return false  
  21. if (id == null) return false;   
  22. // equivalence by id   
  23. return id.equals(other.getId());  
  24. }  
  25. public int hashCode() {   
  26. if (id != null) {  
  27. return id.hashCode();   
  28. } else {   
  29. return super.hashCode();   
  30. }  
  31. }  
  32. public String toString() {   
  33. return this.getClass().getName() + "[id=" + id + "]";  
  34. }  
  35. }  

現在我們有了一個簡單而高效的方法來創建域對象。它們繼承了AbstractPersistentObject,這個父類能在它們***次被創建時自動賦予它們一個id并且恰當的實現了equals()和hashCode()這兩個方法。域對象也得到了一個對toString()方法的合理的缺省實現,這個方法可以有選擇地被重寫。如果這是一個查詢例子的測試對象或者例子對象,id值時可以被改變或者被設為null。否則它是不應當被改變的。如果因為某些原因我們需要創建一個繼承自其它類的域對象,這個對象就應當實現PersistentObject接口而不是繼承抽象類。

  1. public class Person extends AbstractPersistentObject {   
  2. // Person-specific fields and behavior here  

從上一個例子開始Hibernate映像文件就不會再改變了。我們不想麻煩Hibernate去了解抽象父類,相對的,我們只要保證每個持久化對象的映射文件包含一個id項(和一個被指派的生成器)和一個帶有unsaved- value="null"屬性的version標簽。機敏的讀者可能已經注意到,每當一個持久化對象被實例化的時候,它的id值得到了指派。這意味著當Hibernate在內存中創建一個已經保存過的對象時,雖然這個對象是已經存在并從數據庫中讀取的,它也會得到一個新的id。這不會產生問題,因為Hibernate會接著調用對象的setId()方法,用保存的真實id來替換新分配的id。剩下的id生成器并不是問題,因為實現它的算法是輕量級的(也就是說,它并不牽扯到數據庫)。

到現在為止一切都很好,但是我們遺漏了一個重要的細節:如何實現IdGenerator.createId().我們可以為我們理想中的鍵值生成器(key-generation)算法定義一些標準。
◆鍵值可以不牽扯到數據庫而很輕量級的產生
◆即使跨越不同的虛擬機和不同機器,鍵值也要保證***性。
◆如果可能鍵值可以由其它程序,編程語言和數據庫生成,至少要能和它們兼容

【編輯推薦】

  1. Hibernate Util簡單討論
  2. 詳解優化Hibernate性能經驗
  3. 概述Hibernate dbcp連接池使用方法
  4. 淺析Hibernate.cfg.xml配置
  5. Hibernate Shard基礎分析
責任編輯:佚名 來源: IT168
相關推薦

2009-09-23 16:39:51

Hibernate s

2009-09-23 13:33:51

Hibernate屬性

2009-09-24 09:35:47

Hibernate插入

2009-09-28 15:38:12

Hibernate P

2009-09-21 18:00:49

Hibernate X

2009-09-22 14:23:37

Hibernate S

2009-09-22 11:30:57

2009-09-22 17:47:03

Hibernate s

2009-09-22 11:24:07

Hibernate查詢

2009-09-24 13:49:31

Hibernate自增

2009-09-29 10:40:26

Hibernate業務

2009-09-25 14:04:12

Hibernate讀取

2009-09-21 14:24:08

Hibernate3.

2009-09-24 13:12:20

Hibernate原生

2009-09-23 17:34:18

Hibernate映射

2009-07-06 18:29:55

2009-09-29 13:55:23

Hibernate設置

2009-09-27 17:46:22

Hibernate監聽

2009-09-24 10:25:30

Hibernate發展

2009-09-25 14:23:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久成人免费观看 | 2020亚洲天堂 | 亚洲在线一区 | 黄色免费av | 国产精品99视频 | 精品国产99 | 国产精久久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 日日夜夜操天天干 | 亚洲精品乱码久久久久久黑人 | 日韩欧美精品在线播放 | 黑人巨大精品欧美一区二区免费 | 91精品国产综合久久福利软件 | 欧美成人h版在线观看 | 亚洲欧美男人天堂 | 日本偷偷操| 国产精品成人在线 | 国产精品欧美一区二区三区 | 国产亚洲精品久久yy50 | 国产精品久久久久久久久久久久冷 | 91国内视频在线 | 看片地址| 日韩 欧美 二区 | 日韩精品一区二区三区在线观看 | 欧美一区二区免费电影 | 激情一区二区三区 | 精品国产乱码久久久久久蜜退臀 | 国产精品区二区三区日本 | 中文字幕在线免费观看 | 欧美黑人巨大videos精品 | 国产精品久久a | 91视频在线看 | 国产欧美在线一区二区 | 日韩电影中文字幕 | 天天拍天天操 | 91视视频在线观看入口直接观看 | av免费网站在线观看 | 国产精品久久久久久久久久久久久久 | 欧美亚洲国产一区二区三区 | 4hu最新网址 | 国产一区二区三区在线视频 |