Hibernate 級(jí)聯(lián)添加刪除
Posted on 2008-04-02 10:07 G_G 閱讀(2103) 評(píng)論(2) 編輯 收藏 所屬分類(lèi): hibernate問(wèn)題描述:實(shí)體類(lèi)答案從屬于實(shí)體類(lèi)問(wèn)題。(一對(duì)多)
?效果-》
Options類(lèi)
Problems 類(lèi)
?效果-》
????/**
?????*?添加?問(wèn)題?和?選項(xiàng)
?????*?@throws?Exception
?????*/@Test
????public?void?testQu()?throws?Exception?{
????????Session?session?=?HibernateUtil.currentSession();
????????Transaction?tr?=?session.beginTransaction();
????????
????????//級(jí)聯(lián)添加
????????Set?options?=?new?HashSet();
????????Options?op1?=?new?Options();
????????op1.setName("op1");
????????options.add(op1);
????????
????????
????????Options?op2?=?new?Options();
????????op2.setName("op2");
????????options.add(op2);
????????
????????
????????Options?op3?=?new?Options();
????????op3.setName("op3");
????????options.add(op3);
????????Problems?problems?=?new?Problems();
????????
????????problems.setName("problem_1");
????????problems.setOptions(options);
????????problems.setTdesc("tdesc");
????????problems.setType(1);
????????
????????Long?ll?=?(Long)session.save(problems);
????????
????????
????????System.out.println(ll);
????????tr.commit();
???????
mysql> select * from options ;
+----+------------+--------+------+---------+
| id | problemsid | answer | name | visible |
+----+------------+--------+------+---------+
|? 1 |????????? 1 |?? NULL | op2? |?????? 0 |
|? 2 |????????? 1 |?? NULL | op3? |?????? 0 |
|? 3 |????????? 1 |?? NULL | op1? |?????? 0 |
+----+------------+--------+------+---------+
3 rows in set (0.00 sec)
mysql> select * from problems ;
+----+-----------+------+-------+------------+---------+
| id | name????? | type | tdesc | questionid | visible |
+----+-----------+------+-------+------------+---------+
|? 1 | problem_1 |??? 1 | tdesc |?????? NULL |?????? 0 |
+----+-----------+------+-------+------------+---------+
1 row in set (0.00 sec)
????????
????????//級(jí)聯(lián)刪除
????????tr.begin();
????????????session.delete(?session.get(Problems.class,ll)?);
????????tr.commit();
mysql> select * from problems ;
Empty set (0.00 sec)
mysql> select * from options ;
Empty set (0.00 sec)?
????????HibernateUtil.closeSession();
????}
?????*?添加?問(wèn)題?和?選項(xiàng)
?????*?@throws?Exception
?????*/@Test
????public?void?testQu()?throws?Exception?{
????????Session?session?=?HibernateUtil.currentSession();
????????Transaction?tr?=?session.beginTransaction();
????????
????????//級(jí)聯(lián)添加
????????Set?options?=?new?HashSet();
????????Options?op1?=?new?Options();
????????op1.setName("op1");
????????options.add(op1);
????????
????????
????????Options?op2?=?new?Options();
????????op2.setName("op2");
????????options.add(op2);
????????
????????
????????Options?op3?=?new?Options();
????????op3.setName("op3");
????????options.add(op3);
????????Problems?problems?=?new?Problems();
????????
????????problems.setName("problem_1");
????????problems.setOptions(options);
????????problems.setTdesc("tdesc");
????????problems.setType(1);
????????
????????Long?ll?=?(Long)session.save(problems);
????????
????????
????????System.out.println(ll);
????????tr.commit();
???????
mysql> select * from options ;
+----+------------+--------+------+---------+
| id | problemsid | answer | name | visible |
+----+------------+--------+------+---------+
|? 1 |????????? 1 |?? NULL | op2? |?????? 0 |
|? 2 |????????? 1 |?? NULL | op3? |?????? 0 |
|? 3 |????????? 1 |?? NULL | op1? |?????? 0 |
+----+------------+--------+------+---------+
3 rows in set (0.00 sec)
mysql> select * from problems ;
+----+-----------+------+-------+------------+---------+
| id | name????? | type | tdesc | questionid | visible |
+----+-----------+------+-------+------------+---------+
|? 1 | problem_1 |??? 1 | tdesc |?????? NULL |?????? 0 |
+----+-----------+------+-------+------------+---------+
1 row in set (0.00 sec)
????????
????????//級(jí)聯(lián)刪除
????????tr.begin();
????????????session.delete(?session.get(Problems.class,ll)?);
????????tr.commit();
mysql> select * from problems ;
Empty set (0.00 sec)
mysql> select * from options ;
Empty set (0.00 sec)?
????????HibernateUtil.closeSession();
????}
Options類(lèi)
.......
??? /**
?????*?@hibernate.many-to-one?
?????*?????????cascade?=?"save-update"
?????*?????????column?=?"Problemsid"
?????*?????????class?=?"com.zhongqi.domain.Problems"
?????*?@return
?????*/
????public?Problems?getProblems()?{
????????return?problems;
????}
............
??? /**
?????*?@hibernate.many-to-one?
?????*?????????cascade?=?"save-update"
?????*?????????column?=?"Problemsid"
?????*?????????class?=?"com.zhongqi.domain.Problems"
?????*?@return
?????*/
????public?Problems?getProblems()?{
????????return?problems;
????}
............
Problems 類(lèi)
????/**
?????*?@hibernate.set
?????*?????????cascade="all-delete-orphan"
?????*?????????inverse?=?"false"
?????*???????? lazy?=?"true"
?????*?????????@hibernate.collection-key??column?=?"problemsid"
?????*?????????@hibernate.collection-one-to-many?class?=?"com.zhongqi.domain.Options"
?????*?@return
?????*/
????public?Set?getOptions()?{
????????return?options;
????}
?????*?@hibernate.set
?????*?????????cascade="all-delete-orphan"
?????*?????????inverse?=?"false"
?????*???????? lazy?=?"true"
?????*?????????@hibernate.collection-key??column?=?"problemsid"
?????*?????????@hibernate.collection-one-to-many?class?=?"com.zhongqi.domain.Options"
?????*?@return
?????*/
????public?Set?getOptions()?{
????????return?options;
????}