IDEA + SSH OA 第一天(項目收穫:Hibernate XML)

來源:互聯網
上載者:User

標籤:ora   line   app   color   ffffff   nat   個人   cascade   通知   

 之前都是用工具逆向產生代碼,很少寫設定檔,今天試著使用,有幾點需要注意


    Cascade(級聯):
  Cascade代表是否執行級聯操作,Inverse代表是否由己方維護關係。

 Cascade屬性的可能值有:

  all: 所有情況下均進行關聯操作,即save-update和delete。

  none: 所有情況下均不進行關聯操作。這是預設值。

  save-update: 在執行save/update/saveOrUpdate時進行關聯操作。

  delete: 在執行delete 時進行關聯操作。

  all-delete-orphan: 當一個節點在對象圖中成為孤兒節點時,刪除該節點。比如在一個一對多的關係中,Student包含多個book,當在對象關係中刪除一個book時,此book即成為孤兒節點。

 inverse(控制方向反轉):
     一對多:該屬性在多的一方。應該在一方的設定 inverse=true ,多的一方設定 inverse=false(多的一方也可以不設定inverse屬性,因為預設值是false),這說明關聯關係由多的一方來維護。原因:該關聯關係的屬性在多的一方的表中,在維護關聯關係的時候在多的一方容易維護。
  多對多:屬性在獨立表中。在任意一方設定inverse=true,另一方inverse=false;原因:如果兩個多設定為true 的話,表示兩方都對關聯關係表(獨立表)進行了同樣的維護,其實只要一方維護就行了,效率上來說,這樣設定是合理點的。
  一對一:其實是一對多的一個特例,inverse 的設定也是一樣的,主要還是看關聯關係的屬性在哪一方,這一方的inverse=false。
  多對一:也就是一對多的反過來,沒什麼區別。
   

模板:
    如在同包中 class 可以不寫全限定名。(<hibernate-mapping package="包名">)
    
    多對一:column 推薦填寫 屬性名稱+Id 如 userId
    一對多:key column 拷貝 多對一 的column
    多對多:key column 本對象名+Id,class 推薦填寫 關聯對象名 + Id
    
    多對一
        <many-to-one name="屬性名稱" class="對方的類名" column="..."></many-to-one>
        在表中:column 內所裝的內容,只可能是 class 中對方表的 Id 值,並且在表中會建立 column 列;
        
    一對多
        <set name="屬性名稱">
            <key column=" 多對一 的column "></key>
            <one-to-many class="關聯對象名+Id"/>
        </set>
        name 為類中所使用的欄位,表中不會建立列,
        之前在糾結,為什麼 key column 需要填寫,
            多對一 是為了讓子表的 column 欄位新增內容時,尋找新增內容是否是主表的 Id 之一,也就是確認新增內容是否合法。
            而 一對多 的 key column 是為了在使用中新增內容時,自動在子表 column 加入當前類的 主鍵。
        
    多對多(肯定會有一張中間表):
        <set name="屬性名稱" table="中間表名">
            <key column="本對象名+Id"></key>
            <many-to-many class="關聯對象名+Id" column="在表中對應的列名"></many-to-many>
        </set>
        中間表名推薦使用 兩表結合名 如:user_department ;

 

以上為個人理解,如有錯誤請通知我,謝謝

IDEA + SSH OA 第一天(項目收穫:Hibernate XML)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.