首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

在hibernate中,删除一个数据,就要先移除类之间的关系,可是小弟我为什么的不到remove方法呢?

2013-07-04 
在hibernate中,删除一个数据,就要先移除类之间的关系,可是我为什么的不到remove方法呢??package com.gem.p

在hibernate中,删除一个数据,就要先移除类之间的关系,可是我为什么的不到remove方法呢??
package com.gem.pojo;
//stu 类
public class Stu {
private int stuId;
private String stuentName;

private ClassTbl tbl;

public ClassTbl getClassTbl() {
return tbl;
}
public void setClassTbl(ClassTbl tbl) {
this.tbl = tbl;
}
public String getStuentName() {
return stuentName;
}
public void setStuentName(String stuentName) {
this.stuentName = stuentName;
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}

}

/************************************************************/

package com.gem.pojo;

import java.util.Set;

public class ClassTbl {
private  int classId;
private String className;
private Set stu;


public Set getStu() {
return stu;
}
public void setStu(Set stu) {
this.stu = stu;
}
public int getClassId() {
return classId;
}
public void setClassId(int classId) {
this.classId = classId;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}

}

//classTbl与stu 之间的关系是一对多关系
/*************************************************************/

//测试类(main)
package com.gem.test;

import java.util.Set;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.gem.dao.HibernateSessionFactory;
import com.gem.pojo.ClassTbl;
import com.gem.pojo.Stu;
public class MethodTest {
@SuppressWarnings("unchecked")
public static void main(String[] args){

Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();

//获得该学生ID
Stu stu = (Stu) session.get(Stu.class, 2);
//移除学生与班级的关系(类)
ClassTbl tb = (ClassTbl) session.get(ClassTbl.class, 3);


//stu.getClassTbl().setStu(null);
//删除该学生
session.delete(stu);
tx.commit();
session.close();
}
}

Hibernate 类 测试
[解决办法]
直接使用级联啊,cascade="delete"
[解决办法]

引用:
使用remove是为了移除已经删除的数据在类中与其父类的关系,



我不知道你要移除关系干嘛,一个班级对多个学生
你想把那个学生移除那个班
那么你的学生表里是不是有个字段引用的班级表,如果有非空的话就移不了。

[解决办法]
stu.setClassTbl(null),再delete(stu)就行了吧

热点排行