映射的问题,求好心人解答?

s_april_s 2013-07-28 07:29:37
一类是
class School
{
private int schoo_id;
private String schoolname;
Set<Student> student;
}

多类:
class student
{
private int studentid;
private String studentname;
}

school的xml映射文件
<class name="School" table="school" >
<id name="school_id" type="int">
...
</id>

<property name="schoolname" type="string"/>
<set name="student" cascade="all">
<key column="school_id"/>
<one-to-many class="student">
</set>
</class>
<hibernate-mapping>

student的xml映射
<class name="Student" table="student">
<id name="studentid" type="int">
...native
</id>
<property name="studentname" type="string" />
</class>

学校和学生的对应关系为一对多
开始输入了两个数据在student数据并且student的schoolid都和创建的school变量关联起来了
但我删除这两个student对应的school的id对应行删不掉是为什么?
提示是由于student的外键schoolid的关系,但根据级联不是删除一类对应的子类也给删除了吗?

菜鸟才学hibernate求大神~~





...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
s_april_s 2013-07-28
  • 打赏
  • 举报
回复
public class School { private int schoolid; private String schoolname; private Set<Student> student=new HashSet<Student>(); ...//是set get方法 } public class Student { private int studentid; private String studentname; ...//是set get方法 } school xml <class name="School" table="school"> <id name="schoolid" type="int"> <column name="schoolid"></column> <generator class="native"></generator> </id> <property name="schoolname" type="string" /> <set name="student" cascade="all"> <key column="schoolid"/> <one-to-many class="Student"/> </set> </class> student xml <id name="studentid" type="int"> <column name="studentid"/> <generator class="native"/> </id> <property name="studentname" type="string" /> </class> 测试类 Student stu1=new Student(); Student stu2=new Student(); stu1.setStudentname("zhangsan"); stu2.setStudentname("lisi"); School s=new School(); Set<Student> set=new HashSet<Student>(); set.add(stu1); set.add(stu2); s.setSchoolname("xingkong"); s.setStudent(set); SessionFactory factory=HibernateSessionFactory.getSessionFactory(); Session sin=factory.openSession(); Transaction tran=sin.beginTransaction(); sin.save(s); tran.commit(); sin.close(); 然后删除不了school的数据,应该已经级联了啊,怎么删除不了,是什么原因吗,还有one-to-many怎么删除主表从表也删除更新主表从表也更行?新手才看,不懂,求好心人解答
XX的小石头 2013-07-28
  • 打赏
  • 举报
回复
删除这两个student对应的school的id对应行删不掉 删不掉school的数据还是删不掉student的数据?测试了一下,可以删除school的数据 LZ把代码贴出来看看

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧