hibernate多对多的问题和sql server数据库update的问题

原创 2015年11月17日 19:07:50
问题1:hibernate多对多问题,我现在有一个系统,用户和用户之间可以互相添加关注,就是类似于好友关系,用户的实体类和自己这个实体类是多对多的关系,这个应该怎么处理这个关系。
回答:
这种情况不能直接用ManyToMany多对多。
ManyToMany只适合于两者只有基本的外键对应关系,也就是两者的中间关系表没有额外的有效数据。
你这个有额外的isReaded数据。
这个字段应该要放到User和Message的中间关系表中去。
如果放到Message里,那么一条Message可以发给多个User,如果有些User读了,有些User没读,那Message中这个isReaded标志就没法设置了。
所以必须放到关系表中,但这样就不能直接用多对多了,因为关系表中这个字段就没法映射了。
这种情况要把ManyToMany,拆成两组ManyToOne。
由于中间关系表也有有效数据,所以它也要映射成一个PO类,比如映射为UserMsg类;那么一个User就对应多个UserMsg,所以User与它是OneToMany;
同样,一个Message也对应多个UserMsg,所以Message与它也是OneToMany;
你在User和Message中分别都映射一个OneToMany的UserMsg,并在UserMsg中把User和Message都映射为ManyToOne,isReaded字段在UserMsg中。
这样,就把多对多拆成两组一对多了。
补充:也就是说再添加一个实体类UserMsg用来映射用户之间的关系,然后UserMsg和User之间使用ManyToOne,UserMsg里面包含两个User集合属性,这两个属性都是和User是OneToMany。


问题2:sql server数据库 update P set COLOR='蓝色' where COLOR='红色' 怎么会修改不成功 结果显示0行受影响,sql查select * from  P  where COLOR='红色'也没有数据,得怎么设置?
回答:
P表名对应的数据库对么,别用了别的库,查不到数据
继续问:是对应的,但是就是查不到
补充:P的表里面,本来就没有color 为‘’红色的‘’数据。这么说懂么。就行我想把手里的苹果都换成句子,但是我手里一个苹果都没有,怎么换句子。返回的结果也是告诉你你手里没有苹果,一个都没换成。就这意思
继续问:我知道你的意思,但是我想说的是P表里面是有Color为“红色”的数据的。

相关文章推荐

nested exception is org.hibernate.exception.SQLGrammarException: could not get next sequence value

完整的错误提示如下: Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageExceptio...

mysql数据库迁移到SQLServer2008(hibernate 配置)

以前项目都是基于tomcat+mysql(或者oracle),最近项目需求需要把数据库转到SQLServer2008上。 1、软件安装。 mysql的数据源驱动(mysql-connector-odb...
  • guo_net
  • guo_net
  • 2014年01月07日 20:21
  • 1036

sql server中高并发情况下同时执行select和update语句死锁问题(二)

最近在項目上也遇到了select和update死鎖的問題, 發現了這篇文章特轉過來細讀......

sql server中高并发情况下 同时执行select和update语句死锁问题 (一)

最近在项目上线使用过程中使用SqlServer的时候发现在高并发情况下,频繁更新和频繁查询引发死锁。通常我们知道如果两个事务同时对一个表进行插入或修改数据,会发生在请求对表的X锁时,已经被对方持有了。...
  • lishehe
  • lishehe
  • 2014年12月31日 00:39
  • 27474

sql server中高并发情况下 同时执行select和update语句死锁问题 (二)

SQL Server死锁使我们经常遇到的问题,数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁。希望对您学习SQL Server死锁方面能有所帮助。         ...
  • lishehe
  • lishehe
  • 2014年12月31日 23:11
  • 7229

sql server中高并发情况下同时执行select和update语句死锁问题(一)

最近在項目上也遇到了select和update死鎖的問題, 發現了這篇文章特轉過來細讀......

Hibernate (单向)多对多的更新问题!

做SSH项目的时候碰到很多关于Hibernate关系映射更新的问题,有些问题在网上翻阅了很多资料也没找到根本的解决方法,所以记录下这些问题以作保存!Hibernate (单向)多对多业务环境如下:一个...

解决hibernate对Sql Server分页慢的问题

一、hibernate分页 hibernate对MsSql的伪分页  分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术。相信大家对hibernate中的分页都不陌生:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate多对多的问题和sql server数据库update的问题
举报原因:
原因补充:

(最多只允许输入30个字)