掉 Hibernate 的坑了

2018-06-03 22:47:42 +08:00
 dbpe
现在我有俩个类

Student 和 Teacher

都是 ManyToMany 的,用 @JoinTable 做双向关联.

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "PK_S_T", joinColumns = @JoinColumn(name = "teacher_id"),
inverseJoinColumns = @JoinColumn(name = "stu_id"))
Set xxset;


保存的

Teacher teacher = TeacherServer.get(cid);
Student student = studentService.get(sid);
teacher .getStudentList().add(student);
session.update(teaching_class);



中间表不插入数据...立马 session.get 能看到刚才插入的 student...

Google 很久..没找到解决方法..求大佬..指教
4095 次点击
所在节点    Java
7 条回复
bnm965321
2018-06-03 23:19:51 +08:00
session.update(teaching_class);

这一句是将对象持久化到数据库的意思吗?是不是写错了,teaching_class 哪来的
carakan
2018-06-03 23:55:04 +08:00
@bnm965321 update 是持久化到数据库的,改了一些方法 save saveOrupdate 都试过了,不行,那个 teaching_class 是 teacher(复制出删减了一些代码)
dbpe
2018-06-04 07:20:32 +08:00
问题解决...早上醒过来的时候..想了下..昨天查到的资料都是 sessionFactory.getCurrentSession 获取的..但是我现在为了 LAZY 的问题..用 OpenSessionInViewFilter 了..那么对应的应该是 sessionFactory.getOpenSession...那么对应的方案应该是 Opensession 的问题..
dbpe
2018-06-04 07:20:45 +08:00
@bnm965321 谢谢大佬回复
airfling
2018-06-04 07:24:08 +08:00
可以使用 spring data jpa 底层就是 hibernate
szq8014
2018-06-04 08:30:46 +08:00
commit 了没?
iyangyuan
2018-06-04 10:53:31 +08:00
可怕

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460069

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX