
本站地址:http://www.bajiao123.com

例子:(应该说是一对多的关系 部门对项目组)
例子:(应该说是一对多的关系 部门对项目组)
部门 和 项目组
部门表为:id,name
项目组表为id,groupid,name
一个部门有多个项目组,比如:
第一部门有项目一组,项目二组
第二部门有项目一组,项目二组,项目三组.
我想用户通过选择部门,添加想要删除的项目组的名称,比如 删除 第一部门的 项目一组, 如何做?
下面是我的代码,希望大家给我指点下,hibernate刚接触不到一个月,多多请教大家.
-------------
看了这个文章后:
http://dev.csdn.net/develop/article/55/55930.shtm(先看此文章)
按照最基本的思路,应该是先找到牌照为“A00002”的一个对象,如:
ai =
(AutoInfo) session.find(
"from AutoInfo where LICENSE_PLATE='A00002'").get(
0);
//找到该对象属于的 one的 对象
people = ai.getOwnerNo();
//将该对象从one里remove
people.getAutoInfoSet().remove(ai);
//删除该对象
session.delete(ai);
-------
但是有个问题,牌照为“A00002” 在该表中是唯一存在的,也就是没有重复的记录,
查询中能找到一个固定的对象,但是我的表中项目一组可以有多个,仅仅是部门不一样罢了.又该如何做呢? 根据指定的项目组查询出来的记录就有多条.该如何做呢?
请教大家,最好能给出代码.谢谢!
liutjedu
单身移民
信誉:
90
2005-11-27 17:04:27
得分:
0
已经实现了,有人回复下就结帐了!
顺便把我的代码也贴出来,希望大家指正!
//删除项目组
public void delProjectGroup(String projectGroup,Integer jldeptID){
//查找用户指定了部门和项目小组的记录
StringBuffer sb = new StringBuffer(100);
sb.append("select projectgroup ");
sb.append("from Department dept inner join dept.projectgroups projectgroup ");
sb.append("where dept.id='"+jldeptID+"' and projectgroup.groupid='"+projectGroup+"'");
try{
System.out.println(jldeptID+"**************");
System.out.println(projectGroup+"**************");
//打开一个Session
Session session = HibernateSessionFactory.currentSession();
//查询该指定条件的记录
Query query = session.createQuery(sb.toString());
list = query.list();
System.out.println(list.size());
//将查询的记录转为Projectgroup对象
Projectgroup delpg = (Projectgroup) list.get(0);
System.out.println(delpg.getGroupid());
//找出和delpg对象关联的部门
Department dept = delpg.getDepartment();
System.out.println(dept.getName());
//脱离和该部门的关系
dept.getProjectgroups().remove(delpg);
//删除该项目小组
session.delete(delpg);
session.beginTransaction().commit();
HibernateSessionFactory.closeSession();
}catch(HibernateException he){
he.printStackTrace();
}
}
本站地址:http://www.bajiao123.com

