posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          hibernate 問題小結2 (inverse和cascade)

          Posted on 2007-11-16 19:20 G_G 閱讀(1739) 評論(2)  編輯  收藏 所屬分類: hibernate
          inverse 使用
          說明約定-如:
          1.表屬性 :T1oo->id,name
          ??? ?? ?? T2oo->id,avg,aid(
          外鍵 ),version

          2.代碼過程是:Save->t1oo對象(T1oo 外鍵 T2oo)
          ??? ??? T1oo t1oo = new T1oo();
          ??? ??? t1oo.setName("xx");??? ???
          ??? ??? t1oo.setT2ooSet(new HashSet());
          ??? ??? T2oo t2oo2 = new T2oo(24);
          ??? ??? //t2oo2.setT1oo(t1oo); (在下面的本用例表中的第3屬性 )
          ??? ??? t1oo.getT2ooSet().add(t2oo2);
          (在下面的本用例表中的第2屬性 )
          ??? ??? session.save(t1oo);

          3.本例表使用:
          T1oo.hbm.xml ->
          ??????? <set name="t2ooSet" inverse="true" cascade = "all"? >
          (在下面的本用例表中的第1,2屬性 )
          ??????????? <key column="aid"/>
          ??????????? <one-to-many class="T2oo"/>
          ??????? </set>
          T2oo.hbm.xml ->
          ??? ??? <many-to-one name="t1oo" column="aid"? class="T1oo" cascade="all" />
          (在下面的本用例表中的第1,2屬性 )
          結合上面說明得表為:
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+


          4.執行 Hibernate語句
          ??? Hibernate: insert into t1oo (name, id) values (?, ?)
          ??? Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          5.結果為:
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 2 |? 24 | NULL |?????? 0 | //主要就是看 aid屬性
          +----+-----+------+---------+
          1 row in set (0.00 sec)


          mysql> select * from t1oo; //
          因為 T1oo總是可以 Save 下面就不再提了
          +----+------+
          | id | name |
          +----+------+
          |? 2 | xx?? |
          +----+------+
          1 row in set (0.00 sec)

          可改項:

          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | 可改4 | 可改2? |?? ??? ?? |????????? |
          +-------+-------+-------+?????????? |?? 可改1? |
          | t2oo? |?????? | 可改3 |??? ?????? |????????? |
          +-------+-------+-------+----------+----------+



          主本:
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)


          改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 | NULL|?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)

          改2
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Empty set (0.00 sec)

          改2? 改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Empty set (0.00 sec)


          改3
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? |?????? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)

          改3 改2
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? |?????? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Empty set (0.00 sec)


          改3 改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? |?????? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 | NULL |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)

          改3 改2 改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | true? |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? |?????? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Empty set (0.00 sec)

          改4
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          Hibernate: update t2oo set aid=? where id=?
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.02 sec)

          改4 改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? | all?? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          Hibernate: update t2oo set aid=? where id=?
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)

          改4 改2
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false | ? ? ? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? | all?? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: update t2oo set aid=? where id=?
          Empty set (0.00 sec)

          改4 改3
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false | all?? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? |?????? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          Hibernate: update t2oo set aid=? where id=?
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.00 sec)

          改4 改3 改2

          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? true??? |
          | t2oo? |?????? |?????? |??? ? ? ? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: update t2oo set aid=? where id=?
          Empty set (0.00 sec)

          改4 改1 改2
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? | all?? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: update t2oo set aid=? where id=?
          Empty set (0.00 sec)


          改4 改1 改3
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false |? all? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? |?????? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
          Hibernate: update t2oo set aid=? where id=?
          mysql> select * from t2oo;
          +----+-----+------+---------+
          | id | avg | aid? | version |
          +----+-----+------+---------+
          |? 1 |? 24 |??? 1 |?????? 0 |
          +----+-----+------+---------+
          1 row in set (0.02 sec)

          改4 改3 改2 改1
          +-------+-------+-------+----------+----------+
          |hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
          +-------+-------+-------+----------+----------+
          | t1oo? | false |?????? |?? ??? ?? |????????? |
          +-------+-------+-------+? true??? |? false?? |
          | t2oo? |?????? |?????? |??? ????? |????????? |
          +-------+-------+-------+----------+----------+
          Hibernate: insert into t1oo (name, id) values (?, ?)
          Hibernate: update t2oo set aid=? where id=?
          Empty set (0.00 sec)







          評論

          # re: hibernate 問題小結2 (inverse和cascade)  回復  更多評論   

          2007-11-16 23:03 by 專注JAVA開源項目
          有感...

          # re: hibernate 問題小結2 (inverse和cascade)  回復  更多評論   

          2007-11-18 01:16 by 快譯站
          不錯,鼓勵下原創


          5D壁紙 http://5dwall.cn 想看壁紙,新鮮,經典,精美,你想的到的壁紙都有!
          主站蜘蛛池模板: 恩平市| 苏尼特右旗| 北安市| 嘉荫县| 怀宁县| 兴业县| 塔城市| 文化| 临武县| 博湖县| 成安县| 上思县| 日喀则市| 惠安县| 依兰县| 大石桥市| 吴江市| 深州市| 方山县| 新疆| 林周县| 安宁市| 贵阳市| 砀山县| 和田市| 华宁县| 青铜峡市| 南木林县| 兴国县| 万源市| 丰镇市| 华容县| 双江| 盖州市| 涪陵区| 南江县| 定日县| 库车县| 布尔津县| 丰台区| 鸡泽县|