问题描述
- hibernate的reverse在一的一方已经设置为true的问题
- 请问java高手,hibernate的reverse在一的一方已经设置为true,为什么保存一的一方时,还会保存多方啊?
比如,teacher为1方,student为多方,关联设置为<!-- -->
SEQ_TEST
<!-- 多方关联到1方的列 -->
。。。
<!-- cascade=""all"" -->
<!-- 此处还是1方关联到多方的列 -->java代码为:
Teacher t1 = new Teacher();
Student s1= new Student();
s1.setName(""xiaomm1"");Student s2= new Student(); s2.setName(""xiaomm2""); t1.setName(""ttt1""); Set<Student> sts =new HashSet<Student>(); sts.add(s1); sts.add(s2); t1.setStudents(sts);//老师关联学生 Configuration cf=new Configuration().configure(); SessionFactory sf = cf.buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); session.save(t1);//只保存老师
运行结果为,老师和学生都保存了,只是student的teacher_id为空而已,不是说一的方reverse=true,保存一方时,不操作多的一方的数据库吗?
请高手指点,感激不尽了
解决方案
reverse 与 cascade 一起设置试试
时间: 2024-11-17 00:22:46