• P18

      hibernate4實戰 之第六部分 文檔

    Hibernate4實戰之第六部分:基本實現原理2013-05-1101:35:00標簽:HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-%E5%AF%B9%E8%B1%A1.html"\t"_blank"對象HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E8%A1%8C%E4%B8%9A%E6%95%B0%E6%8D%AE.html"\t"_blank"行業數據HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205813"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205813"http://3001448.blog.51cto.com/2991448/1205813整體流程1:通過configuration來讀cfg.xml文件2:得到SessionFactory工廠3:通過SessionFactory工廠來創建Session實例4:通過Session打開事務5:通過session的api操作數據庫6:事務提交7:關閉連接?說明:以下分方法描述的實現流程并不是Hibernate的完整實現流程,也不是Hibernate的完整實現順序,只是描述了Hibernate實現這些方法的主干和基本方式,主要是用來理解這些方法背后都發生了些什么,如果需要詳細完整的實現流程,請查閱Hibernate相應文檔和源代碼INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/85496e48dbd61a7c31baa95771128a94__1.bmp"\*MERGEFORMATINET?當我們調用了session.save(UserModel)后:1:TO--->PO:Hibernate先在緩存中查找,如果發現在內部緩存中已經存在相同id的PO,就認為這個數據已經保存了,拋出例外。如果緩存中沒有,Hibernate會把傳入的這個TO對象放到session控制的實例池去,也就是把一個瞬時對象變成了一個持久化對象。如果需要Hibernate生成主鍵值,Hibernate就會去生成id并設置到PO上2:客戶端提交事務或者刷新內存3:根據model類型和cfg.xml中映射文件的注冊來找到相應的hbm.xml文件4:根據hbm.xml文件和model來動態的拼sql,如下:insertinto表名(來自hbm.xml)(字段名列表(來自hbm.xml))values(對應的值的列表(根據hbm.xml從傳入的model中獲取值))5:真正用JDBC執行sql,把值添加到數據庫6:返回這個PO的id。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/b41cef57e703ae3c9f920ecd1433a63d__2.bmp"\*MERGEFORMATINET?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/22/9457a21896d91dab8bfa15f1ee733648__3.bmp"\*MERGEFORMATINET當我們調用了session.update(UserModel)后:1:DO--->PO:首先根據model的主鍵在hibernate的實例池中查找該對象,找到就拋出錯誤。如果沒有就DO--->PO,Hibernate會把傳入的這個DO對象放到session控制的實例池去,也就是把一個瞬時對象變成了一個持久化對象2:客戶端提交事務或者刷新內存

    netfjfzlj 2016-03-14   685   0
    P3

      hibernate4實戰 之第五部分:hibernate的事務和并發 文檔

    Hibernate4實戰之第五部分:Hibernate的事務和并發2013-05-1101:34:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E4%BA%8B%E5%8A%A1.html"\t"_blank"事務HYPERLINK"http://blog.51cto.com/tag-%E5%B9%B6%E5%8F%91.html"\t"_blank"并發HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-%E5%BA%94%E7%94%A8.html"\t"_blank"應用HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205814"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205814"http://3001448.blog.51cto.com/2991448/1205814Hibernate本身沒有事務的實現Hibernate直接使用JDBC連接和JTA資源,不添加任何附加鎖定行為。也就是說你在Hibernate里面使用的事務要么是JDBC的事務,要么是JTA的事務。Hibernate不鎖定內存中的對象你的應用程序會按照你的數據庫事務的隔離級別規定的那樣運作,真正對事務的實現和支持也依賴于數據庫。?對于并發處理,Hibernate提供了樂觀鎖和悲觀鎖來進行并發處理Hibernate對自動樂觀并發控制提供版本管理,針對行級悲觀鎖定,Hibernate也提供了輔助的(較小的)API,它使用了SELECTFORUPDATE的SQL語法Hibernate的Session是和事務聯系在一起的可以通過Session去獲取事務的接口,從而進行事務的控制。?數據庫事務應該盡可能的短這樣能降低數據庫中的鎖爭用。數據庫長事務會阻止你的應用程序擴展到高的并發負載。因此,假若在用戶思考期間讓數據庫事務開著,直到整個工作單元完成才關閉這個事務,這絕不是一個好的設計。這就引出一個問題:一個操作單元,也就是一個事務單元的范圍應該是多大?一個操作一個?一個請求一個?一個應用一個??反模式:session-per-operation在單個線程中,不要因為一次簡單的數據庫調用,就打開和關閉一次Session!數據庫事務也是如此。也就是說應該禁止自動事務提交(auto-commit)。?session-per-request最常用的模式是每個請求一個會話。在這種模式下,來自客戶端的請求被發送到服務器端,即Hibernate持久化層運行的地方,一個新的HibernateSession被打開,并且執行這個操作單元中所有的數據庫操作。一旦操作完成(同時對客戶端的響應也準備就緒),session被同步,然后關閉。會話和請求之間的關系是一對一的關系。Hibernate內置了對“當前session(currentsession)”的管理,用于簡化此模式。你要做的一切就是在服務器端要處理請求的時候,開啟事務,在響應發送給客戶之前結束事務,通常使用ServeltFilter來完成。?非托管環境下所謂非托管,指的是:應用程序沒有托管到J2EE環境中,通常由Hibernate自己來負責管理數據庫連接池。應用程序開發人員必須手工設置事務聲明,換句話說,就是手工啟動,提交,或者回滾數據庫事務。?使用JTA又有兩種方式,一種是在Hibernate配置里面修改transaction的factory類,從而在程序里面可以直接使用Hibernate的事務API,也就是程序不用變化。另外一種方式就是直接通過JNDI去查找UserTransaction,然后直接在程序里面使用JTA的接口來控制事務。應用程序級別的版本檢查簡單點說,就是由應用程序自己實現版本檢查來確保對話事務的隔離,從數據訪問的角度來說是最低效

    netfjfzlj 2016-03-14   468   0
    P3

      hibernate4實戰 之第七部分 文檔

    Hibernate4實戰之第七部分:最佳實踐2013-05-1101:36:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate4%E5%AE%9E%E6%88%98%E4%B9%8B%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html"\t"_blank"Hibernate4實戰之最佳實踐HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205812"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205812"http://3001448.blog.51cto.com/2991448/1205812設計細顆粒度的持久類并且使用<component>來實現映射。例如使用一個Address持久類來封裝street,suburb,state,postcode.這將有利于代碼重用和簡化代碼重構(refactoring)的工作。對持久類聲明標識符屬性(identifierproperties)。Hibernate中標識符屬性是可選的,不過有很多原因來說明你應該使用標識符屬性。我們建議標識符應該是“人造”的(自動生成,不涉及業務含義)。使用自然鍵(naturalkeys)標識對所有的實體都標識出自然鍵,用<natural-id>進行映射。實現equals()和hashCode(),在其中用組成自然鍵的屬性進行比較。為每個持久類寫一個映射文件不要把所有的持久類映射都寫到一個大文件中。把com.eg.Foo映射到com/eg/Foo.hbm.xml中,在團隊開發環境中,這一點顯得特別有意義。把映射文件作為資源加載把映射文件和他們的映射類放在一起進行部署。考慮把查詢字符串放在程序外面如果你的查詢中調用了非ANSI標準的SQL函數,那么這條實踐經驗對你適用。把查詢字符串放在映射文件中可以讓程序具有更好的可移植性。使用綁定變量就像在JDBC編程中一樣,應該總是用占位符"?"來替換非常量值,不要在查詢中用字符串值來構造非常量值!更好的辦法是在查詢中使用命名參數。不要自己來管理JDBCconnectionsHibernate允許應用程序自己來管理JDBCconnections,但是應該作為最后沒有辦法的辦法。如果你不能使用Hibernate內建的connectionsproviders,那么考慮實現自己來實現org.hibernate.connection.ConnectionProvider考慮使用用戶自定義類型(customtype)假設你有一個Java類型,來自某些類庫,需要被持久化,但是該類沒有提供映射操作需要的存取方法。那么你應該考慮實現org.hibernate.UserType接口。這種辦法使程序代碼寫起來更加自如,不再需要考慮類與Hibernatetype之間的相互轉換。?在性能瓶頸的地方使用硬編碼的JDBC在系統中對性能要求很嚴格的一些部分,某些操作也許直接使用JDBC會更好。但是請先確認這的確是一個瓶頸,并且不要想當然認為JDBC一定會更快。如果確實需要直接使用JDBC,那么最好打開一個HibernateSession然后從Session獲得connection,按照這種辦法你仍然可以使用同樣的transaction策略和底層的connectionprovider。理解Session清洗(flushing)Session會不時的向數據庫同步持久化狀態,如果這種操作進行的過于頻繁,性能會受到一定的影響。有時候你可以通過禁止自動flushing,盡量最小化非必要的flushing操作,或者更進一步,在一個特定的transaction中改變查詢和其它操作的順序。在三層結構中,考慮使用托管對象(detachedobject)當使用一個servlet/sessionbean類型的架構的時候,你可以把已加載的持久對象在sessionbean層和servlet/JSP層之間來回傳遞。使用新的session來為每個請求服務,使用Session.merge()或者Session.saveOrUpdate()來與數據庫同步。在兩層結構中,考慮使用長持久上下文(longpers

    netfjfzlj 2016-03-14   4196   0
    P13

      hibernate4實戰 之 第二部分 文檔

    Hibernate4實戰之第二部分:Hibernate的基本配置2013-05-1101:32:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-%E7%BC%96%E7%A8%8B.html"\t"_blank"編程HYPERLINK"http://blog.51cto.com/tag-c3p0.html"\t"_blank"c3p0HYPERLINK"http://blog.51cto.com/tag-Java.html"\t"_blank"JavaHYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205817"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205817"http://3001448.blog.51cto.com/2991448/1205817可編程的配置方式-1如果在配置cfg.xml的時候,不想在里面配置hbm.xml怎么辦呢?可在程序里使用可編程的配置方式,也就是使用程序來指定在cfg.xml里面的配置信息,不推薦這種方式。如下:Configurationcfg=newConfiguration()???.addResource("Item.hbm.xml")???.addResource("Bid.hbm.xml");?一個替代方法(有時是更好選擇)是,指定被映射的類,讓Hibernate幫你尋找映射定義文件:Configurationcfg=newConfiguration()???.addClass(org.hibernate.auction.Item.class)???.addClass(org.hibernate.auction.Bid.class);這種方式消除了任何對文件名的硬編碼可編程的配置方式-2還可以通過編程的方式來指定配置屬性:Configurationcfg=newConfiguration()???.addClass(org.hibernate.auction.Item.class)???.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect")???.setProperty("hibernate.connection.datasource","java:comp/env/jdbc/test")???.setProperty("hibernate.order_updates","true");其他可以傳入配置屬性的方式:1:properties文件2:xml文件3:設置Java的系統屬性,形如:java–Dproperty=value另外要注意一點:org.hibernate.cfg.Configuration實例被設計成啟動期間(startup-time)對象,一旦SessionFactory創建完成它就被丟棄了。?與數據庫連接的配置有兩種方法,一種是JDBC,一種是DataSourceJDBC的配置INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/c7b4a79cc0e14038212cc6d54ba26252__%E5%9B%BE%E7%89%871.png"\*MERGEFORMATINET示例:<propertyame="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><propertyname="connect

    netfjfzlj 2016-03-14   778   0
    P10

      hibernate4實戰 之 第一部分 hibernate入門 文檔

    Hibernate4實戰之第一部分Hibernate入門2013-05-1101:31:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-Hibernate4.html"\t"_blank"Hibernate4HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205818"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205818"http://3001448.blog.51cto.com/2991448/1205818Hibernate是什么???Hibernate是一個輕量級的ORMapping框架??ORMapping原理(ObjectRelationalMapping)?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/bce2ea80efb685abf97a312ebcf61b34__1.JPG"\*MERGEFORMATINETORMapping基本對應規則:1:類跟表相對應2:類的屬性跟表的字段相對應3:類的實例與表中具體的一條記錄相對應4:一個類可以對應多個表,一個表也可以對應對個類5:DB中的表可以沒有主鍵,但是Object中必須設置主鍵字段6:DB中表與表之間的關系(如:外鍵)映射成為Object之間的關系?7:Object中屬性的個數和名稱可以和表中定義的字段個數和名稱不一樣?ORMapping的基本實現方式:使用JDBC,用SQL來操作數據庫,只是看動態生成還是人工寫代碼來實現。大家想想,我們實現過ORMapping嗎??INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/fef823b1bb37a91ec3013fe2bb441ffb__2.JPG"\*MERGEFORMATINET?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/8792eaf947c4702ef7556c32cbbe2fe9__3.JPG"\*MERGEFORMATINETHibernate能干什么:???Hibernate主要用來實現Java對象和表之間的映射,除此之外還提供還提供數據查詢和獲取數據的方法,可以大幅度減少開發時人工使用SQL和JDBC處理數據的時間。Hibernate的目標是對于開發者通常的數據持久化相關的編程任務,解放其中的95%。對于以數據為中心的程序來說,它們往往只在數據庫中使用存儲過程來實現商業邏輯,Hibernate可能不是最好的解決方案;對于那些在基于Java的中間層應用中,它們實現面向對象的業務模型和商業邏輯的應用,Hibernate是最有用的。??Hibernate可以幫助你消除或者包裝那些針對特定廠商的SQL代碼,并且幫你把結果集從表格式的表示形式轉換到一系列的對象去。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/839e032a79e7826912b1c67e51c18f69__4.JPG"\*MERGEFORMATINET一個非常簡要的Hibernate體系結構的高層概要圖INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/6f6ef5745fb905fd91537ca799ca2b1a__5.JPG"\*MERGEFORMATINETHibernate運行時體系結構“最小”的體系結構方案,要求應用程序提供自己的JDBC連接并管理自己的事務。這種方案使用了HibernateAPI的最小子集.?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/c305b617ab7081c270a20836ba1dd

    netfjfzlj 2016-03-14   567   0
    P15

      hibernate4實戰 之 第三部分:hibernate的基本開發 文檔

    Hibernate4實戰之第三部分:Hibernate的基本開發2013-05-1101:33:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-%E8%A1%8C%E4%B8%9A%E6%95%B0%E6%8D%AE.html"\t"_blank"行業數據HYPERLINK"http://blog.51cto.com/tag-%E6%95%B0%E6%8D%AE%E5%BA%93.html"\t"_blank"數據庫HYPERLINK"http://blog.51cto.com/tag-%E5%AF%B9%E8%B1%A1.html"\t"_blank"對象HYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205816"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205816"http://3001448.blog.51cto.com/2991448/12058161:瞬時(Transient)-由new操作符創建,且尚未與HibernateSession關聯的對象被認定為瞬時的。瞬時對象不會被持久化到數據庫中,也不會被賦予持久化標識(identifier)。如果瞬時對象在程序中沒有被引用,它會被垃圾回收器銷毀。使用HibernateSession可以將其變為持久狀態,Hibernate會自動執行必要的SQL語句。?2:持久(Persistent)-持久的實例在數據庫中有對應的記錄,并擁有一個持久化標識。持久的實例可能是剛被保存的,或剛被加載的,無論哪一種,按定義,它存在于相關聯的Session作用范圍內。Hibernate會檢測到處于持久狀態的對象的任何改動,在當前操作單元執行完畢時將對象數據與數據庫同步。開發者不需要手動執行UPDATE。將對象從持久狀態變成瞬時狀態同樣也不需要手動執行DELETE語句。?3:脫管(Detached)-與持久對象關聯的Session被關閉后,對象就變為脫管的。對脫管對象的引用依然有效,對象可繼續被修改。脫管對象如果重新關聯到某個新的Session上,會再次轉變為持久的,在脫管期間的改動將被持久化到數據庫。INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/41af9144df34dda7df09323551ff1c4b__%E6%9C%AA%E5%91%BD%E5%90%8D.PNG"\*MERGEFORMATINET?通過Session接口來操作Hibernate新增——save方法、persist方法1:persist()使一個臨時實例持久化。然而,它不保證立即把標識符值分配給持久性實例,這會發生在flush的時候。persist()也保證它在事務邊界外調用時不會執行INSERT語句。這對于長期運行的帶有擴展會話/持久化上下文的會話是很有用的。2:save()保證返回一個標識符。如果需要運行INSERT來獲取標識符(如"identity"而非"sequence"生成器),這個INSERT將立即執行,不管你是否在事務內部還是外部。這對于長期運行的帶有擴展會話/持久化上下文的會話來說會出現問題。?刪除——delete方法修改——有四種方法來做,分別是:1:直接在Session打開的時候load對象,然后修改這個持久對象,在事務提交的時候,會自動flush到數據庫中。2:修改托管對象,可用update或merge方法3:自動狀態檢測:saveOrUpdate方法update和merge方法1:如果數據庫里面存在你要修改的記錄,update每次是直接執行修改語句;而merge是先在緩存中查找,緩存中沒有相應數據,就到數據庫去查詢,然后再合并數據,如果數據是一樣的,那么merge方法不會去做修改,如果數據有不一樣的地方,

    netfjfzlj 2016-03-14   498   0
    P12

      hibernate4實戰 之 第四部分:關系映射 文檔

    Hibernate4實戰之第四部分:關系映射2013-05-1101:33:00標簽:HYPERLINK"http://blog.51cto.com/tag-Hibernate.html"\t"_blank"HibernateHYPERLINK"http://blog.51cto.com/tag-Java.html"\t"_blank"JavaHYPERLINK"http://blog.51cto.com/tag-%E7%B1%BB.html"\t"_blank"類HYPERLINK"http://blog.51cto.com/tag-SQL.html"\t"_blank"SQLHYPERLINK"http://blog.51cto.com/tag-String.html"\t"_blank"StringHYPERLINK"http://blog.51cto.com/zt/617"\t"_blank"INCLUDEPICTURE"http://3001448.blog.51cto.com/image/zt/big.png"\*MERGEFORMATINET原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章HYPERLINK"http://3001448.blog.51cto.com/2991448/1205815"\t"_blank"原始出處、作者信息和本聲明。否則將追究法律責任。HYPERLINK"http://3001448.blog.51cto.com/2991448/1205815"http://3001448.blog.51cto.com/2991448/1205815數據表之間的關系分為三類:一對一、一對多、多對多一對一數據表(部門表?和?部門主管表)一對多數據表(部門表?和?部門下的人員表)多對多數據表(部門表?和?人員表)?INCLUDEPICTURE"http://sishuok.com/forum/upload/2012/2/21/ba8cdefeaa03414a6b2ef409df61f73a__1.bmp"\*MERGEFORMATINET根據相互尋找的關系又分:單向和雙向對象一對一(雙向)java代碼:HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"查看HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"復制到剪貼板HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"打印public?class?A?{??private?B?b?=?null;??}??public?class?B?{??private?A?a?=?null;??}??n對象一對多?(雙向)??public?class?A?{??private?B?b?=?null;??}??public?class?B?{??private?Collection<A>?colA?=?null;??}??n對象多對多?(雙向)??public?class?A?{??private?Collection<B>?colB?=?null;??}??public?class?B?{??private?Collection<A>?colA?=?null;??}???雙向一對多是最常用的映射關系<key>元素<key>元素在父映射元素定義了對新表的連接,并且在被連接表中定義了一個外鍵引用原表的主鍵的情況下經常使用。java代碼:HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"查看HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"復制到剪貼板HYPERLINK"http://sishuok.com/forum/blogPost/list/2479.html"打印<key??column="columnname"(1)??on-delete="noaction|cascade"(2)??property-ref="propertyName"(3)??not-null="true|false"(4)??update="true|false"(5)??unique="true|false"(6)??/>??(1)column(可選):外鍵字段的名稱。也可以通過嵌套的<column>指定。(2)on-delete(可選,默認是noacti

    netfjfzlj 2016-03-14   631   0

    關鍵詞

    最新上傳

    熱門文檔

  • sesese色