<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java瑣事

    -I am not alone
    posts - 54, comments - 30, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    hibernate的單向級聯刪除問題

    Posted on 2010-10-06 18:38 石子路口 閱讀(2682) 評論(3)  編輯  收藏 所屬分類: 網絡教學資源平臺
       對于兩個不同的表,在hibernate中可以設置它們的多對多關系,一對一關系或者是多對一關系。而且還有單向和雙向的問題。這些都是學hibernate必學的,這里不再重復。我只說下級聯刪除時應注意的問題,多對一單向關系到底能不能實現級聯?
       假設存在兩個表:欄目(lm)表,內容(mknr)表;它們屬于多對一的關系,即欄目可以包括多個內容。則有以下方式:
     欄目表對應的pojo類:Lm.java
    public class Lm implements java.io.Serializable
    {
        
    //欄目id
        private int id;
        
    private String name;
        
    private Set mknr = new HashSet();

        
    //getter和setter方法

    }
       欄目表對應的映射文件:Lm.hbm.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >
    <hibernate-mapping>
        
    <class catalog="eteares" name="cn.edu.ujn.wsjx.model.Lm" table="lm">
            
    <id name="id" type="java.lang.Integer">
                
    <column name="id" />
                
    <generator class="identity" />
            
    </id>
            
    <property name="name" type="java.lang.String">
                
    <column length="20" name="name" />
            
    <set name="mknr" inverse="false" cascade="all">
                
    <key column="lmId" />
                
    <one-to-many class="cn.edu.ujn.wsjx.model.Mknr"/>
            
    </set>
        
    </class>
    </hibernate-mapping>
       內容表對應的pojo類:Mknr.java
    public class Mknr implements java.io.Serializable
    {
        
    private int id;
        
    private String title;
        
    private String content;
        
    private Lm lm;
        
        
    //getter和setter方法

    }
      內容表對應的映射文件:Mknr.hbm.xml
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >

    <hibernate-mapping>
        
    <class name="cn.edu.ujn.wsjx.model.Mknr" table="mknr" catalog="eteares">
            
    <id name="id" type="java.lang.Integer">
                
    <column name="id" />
                
    <generator class="identity" />
            
    </id>
            
    <property name="title" type="java.lang.String">
                
    <column name="title" length="100" />
            
    </property>
            
    <property name="content" type="java.lang.String">
                
    <column name="content" length="16777215" />
            
    </property>
            
    <many-to-one name="lm" class="cn.edu.ujn.wsjx.model.Lm" lazy="false">
                
    <column name="lmId" />
            
    </many-to-one>
        
    </class>
    </hibernate-mapping>


                    從上面的代碼可以得知,這種設置方式屬于一對多雙向關聯,為什么不設置成多對一單向關聯呢(把Lm.java中的mknr屬性去掉),之前我就是這么設置,但每當刪除lm中的記錄時,刪除就會出現外鍵參考的錯誤,這是因為mknr中有記錄外鍵到了lm表中,而刪除時因為單向關聯無法通過lm找到mknr
                    所以要使用級聯刪除,就要設置成雙向關聯!

    評論

    # re: hibernate的單向級聯刪除問題  回復  更多評論   

    2010-10-08 09:25 by 窩窩影視
    學習了

    # re: hibernate的單向級聯刪除問題  回復  更多評論   

    2010-11-04 11:16 by jndxjing
    我都百度到你這來了。。。哈哈

    # re: hibernate的單向級聯刪除問題  回復  更多評論   

    2010-11-04 17:11 by syg
    @jndxjing
    幸會……幸會
    主站蜘蛛池模板: 99在线视频免费观看| 亚洲AV无码专区国产乱码不卡| 一区二区三区免费在线视频| 成人免费毛片观看| 亚洲不卡1卡2卡三卡2021麻豆| 久久九九AV免费精品| 久久被窝电影亚洲爽爽爽| 国产精品免费看久久久香蕉| 亚洲成a人片在线观看日本麻豆| 亚洲av综合av一区二区三区| 国产免费av片在线看| 亚洲乱码在线观看| 永久免费观看的毛片的网站| 亚洲久热无码av中文字幕| 最新免费jlzzjlzz在线播放| 一本色道久久88—综合亚洲精品 | 亚洲一区二区三区播放在线| xxxxx免费视频| 亚洲精品二三区伊人久久| 一二三四影视在线看片免费| 亚洲熟妇av午夜无码不卡| 免费欧洲美女牲交视频| kk4kk免费视频毛片| 亚洲国产精品无码成人片久久| 免费日本一区二区| 亚洲成a人片在线观看中文app| 国产无人区码卡二卡三卡免费| 亚洲夂夂婷婷色拍WW47| 免费国产不卡午夜福在线| 亚洲第一视频在线观看免费| 久久久久亚洲av无码尤物| 91精品国产免费久久久久久青草| 亚洲人成色4444在线观看| 亚洲国产成人精品91久久久| 成人网站免费看黄A站视频| 亚洲天堂中文字幕在线观看| 在线中文高清资源免费观看| 一级毛片人与动免费观看| 亚洲精品免费视频| 免费鲁丝片一级观看| 国产成人无码免费看片软件|