inverse 使用
說(shuō)明約定-如:
1.表屬性 :T1oo->id,name
??? ?? ?? T2oo->id,avg,aid(
外鍵
),version
2.代碼過(guò)程是:Save->t1oo對(duì)象(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屬性 )
結(jié)合上面說(shuō)明得表為:
+-------+-------+-------+----------+----------+
|hbn.xml|inverse|cascade|t1oo->t2oo|t2oo->t1oo|
+-------+-------+-------+----------+----------+
| t1oo? | true? | all?? |?? ??? ?? |????????? |
+-------+-------+-------+? true??? |? false?? |
| t2oo? |?????? | all?? |??? ????? |????????? |
+-------+-------+-------+----------+----------+
4.執(zhí)行
Hibernate語(yǔ)句
:
??? Hibernate: insert into t1oo (name, id) values (?, ?)
??? Hibernate: insert into t2oo (version, avg, aid, id) values (?, ?, ?, ?)
5.結(jié)果為:
mysql> select * from t2oo;
+----+-----+------+---------+
| id | avg | aid? | version |
+----+-----+------+---------+
|? 2 |? 24 | NULL |?????? 0 | //主要就是看 aid屬性
+----+-----+------+---------+
1 row in set (0.00 sec)
mysql> select * from t1oo; //
因?yàn)?/font>
T1oo總是可以 Save 下面就不再提了
+----+------+
| id | name |
+----+------+
|? 2 | xx?? |
+----+------+
1 row in set (0.00 sec)
可改項(xiàng):
+-------+-------+-------+----------+----------+
|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)