社区
Java EE
帖子详情
hibernate多对多双向维护问题!!!
chen_2001
2010-08-02 12:54:44
两个多对多对象:用户,地址
数据库表:用户表,用户_地址表(中间表),用户表
我在地址的hbm.xml文件设置inverse=false,用户hbm.xml文件设置inverse=true
添加一个地址没有什么问题,可修改一个地址所包含的用户时,数据库没有反应,这不合乎逻辑,我知道这是inverse=true造成的,可不能把用户hbm.xml的inverse也设置为false吧,请问大家有什么高见,谢谢!
...全文
240
10
打赏
收藏
hibernate多对多双向维护问题!!!
两个多对多对象:用户,地址 数据库表:用户表,用户_地址表(中间表),用户表 我在地址的hbm.xml文件设置inverse=false,用户hbm.xml文件设置inverse=true 添加一个地址没有什么问题,可修改一个地址所包含的用户时,数据库没有反应,这不合乎逻辑,我知道这是inverse=true造成的,可不能把用户hbm.xml的inverse也设置为false吧,请问大家有什么高见,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yearnqiao
2010-08-03
打赏
举报
回复
用户(user),地址(address) ,中间表userAddress
两个实体类中都有对方的set集合作为属性
配置也前两种关系差不多:
user实体的配置是:
<set name="adds" table="userAddress" inverse="true">
</set>其他的都是一样的
address配置:
<set name="users" table="userAddress" cascade="all">
</set>
中间表不用配置,set中的table指的就是中间表,把主动权交给了address,并且设有级联
前提是:主动权交给了address,
第一种
当我们想把地址删除掉时,关系表删掉,但用户不删除
做法是,在delete(address)之前,先把地址的用户集合中的数据先clear();
Set<user> ss = adds.getUsers();
ss.clear();
session.flush();
第二种
当我们想把地址删除掉时,关系表删掉,用户也要删除
就直接delete(address)
第三种
如果只要删除关系表 就:
把地址的用户集合中的数据clear();就可以了
第四种
只删除用户和关系表时:
就把用户查出来,把地址集合中该用户的关系先给移除掉,然后在把用户删除
你的应该是属于第一种吧!
试试看可以不
HF_SKY000
2010-08-03
打赏
举报
回复
学习了。
不能飞的肥燕
2010-08-03
打赏
举报
回复
不知道这个是不是你要的
http://blog.163.com/kondiweyane@126/blog/static/130426806201001863046307/
btw,问问题的时候把问题说清楚,大家可以帮你解决问题,但是没时间去找你的问题内容:)
chen_2001
2010-08-03
打赏
举报
回复
没人回答吗
IOshopping
2010-08-03
打赏
举报
回复
使用hibernate关联时,最好不要使用双向关联。个人建议
chen_2001
2010-08-02
打赏
举报
回复
user.hbm.xml:
<set class = "user_addr" inverse="true" cascade="save-update">
...
address.hbm.xml
<set class = "user_addr" inverse="false">
...
再加2个PO类
User.java 和 Address.java
数据库外键已经加入
1.对某一用户,如果增加地址时,user_addr表中会加入一条记录;
addr.getUsers().add(user);
addrDao.update(addr);
2.修改某一用户地址,如删除一个用户地址,user_addr并没有删除一条记录
user.getAddrs().remove(addr);
userDao.update(user);
我认为这是inverse造成的,可是1成功,2失败,我想1、2都能成功,怎么办?
如果都改为inverse="false", 按现在的方法,插入一个地址会出现主键重复
请高手支招
Jlins
2010-08-02
打赏
举报
回复
应该把代码贴出来....
最好能把双向关系转化成 1:N 来处理 好控制
shore1111
2010-08-02
打赏
举报
回复
[Quote=引用 2 楼 chen_2001 的回复:]
代码网上都有
[/Quote]很强大
chen_2001
2010-08-02
打赏
举报
回复
代码网上都有,好像双向维护都不能实现
bai_feng
2010-08-02
打赏
举报
回复
把你的代码贴上来看看,逻辑没有错误,那就是代码的问题了
hibernate
学习5之one-to-many
双向
关联.docx
如果在”一“一端
维护
一对多关联关系,
hibernate
会发出多余的udpate语句,所以我们一般在多的一端来
维护
关联关系。 加上inverse="true"这个属性,就可以强制在多的一端
维护
关系了。
Hibernate
框架复习17-
多对多
关系中的
双向
维护
及
问题
(易错)
hibernate
中
多对多
使用
双向
维护
存在的
问题
在
hibernate
中,如果使用
双向
维护
,那么必须要求某一方放弃外键
维护
权,如果不是这样,那么在保存、更新或者其他操作的时候会出现主键冲突的
问题
,因为他们对主键进行了...
全面掌握
Hibernate
框架技术
包含
Hibernate
相关技术:
Hibernate
简介、Session API、对象的状态 查询操作(主键查询、HQL查询、Criteria查询、SQL查询、命名查询、doWork) 关联关系:多对一、一对多、
多对多
、一对一 组件映射、继承映射、缓存...
hibernate
多对一
双向
关联
Hibernate
一对一主键单向关联
Hibernate
一对一主键
双向
关联
Hibernate
一对一外键单向关联
Hibernate
一对一外键
双向
关联
Hibernate
多对一单向关联
Hibernate
多对一
双向
关联
Hibernate
多对多
关联 代码都写有注释,主要包括...
Hibernate
一对多外键
双向
关联
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 原文地址:http://lavasoft.blog.51cto.com/62575/39336
Hibernate
一对多外键
双向
关联 一、模型介绍
Java EE
67,514
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章