比如用户和用户组 , 一个user属于多个group ,一个group可以有多个user user.setGroups(groups) ; 最后数据表成了3,1 |
|
自己顶! 弄了一下午了,这个问题一直没解决,不知道怎么回事
|
|
表是否有主外键约束;你把Hibernate配置内容列出来瞧一瞧哈。
|
|
级联是不是配置了all或merge、remove?
贴出hibernate配置看看 |
|
user配置 |
|
设置了merge和persist |
|
Set<Group> groups = new HashSet<>();
Gropu group3 = groupService.get(3); Gropu group2 = groupService.get(2); groups.add(group3); groups.add(group2); user.setGroups(groups) ; userService.update(user); 你设置的就一个关系,数据库肯定就一个值! |
|
每次一次操作都要先把原来的set查出来,然后再add进去吗? |
|
40分 |
第一个问题回答:如果你设置了级联关系,user对象已经包含了group的set,新添加add,只需要user.getGroups.add(新的); 第三点:优化方面 我是有一些方法,但是 很久没留意了 怕印象有误。 所以我想说的是,Hibernate本身就是面向对象的ORM,如想精准控制,就用JDBC吧,Hibernate不是不能,可以通过配置文件配置,但有些复杂,得不偿失;没有必要为这点性能顾虑太多,若是真要求高性能,Hibernate肯定不会用的 |
我个人很喜欢Hibernate的实现理论,但是很讨厌在开发中用Hibernate,推荐MyBatis
|
|
|
|
这个是怎么搞定的
|
|
这个是怎么搞定的
|