hibernate多对多的一个疑问

you know!hibernate 多对多的时候,中间表记录是自动生成的。



但是如果我要在中间表需要加入一个“是否有效”字段active。,还有些其他字段。


1。取出记录的时候,默认显示的是所有关联的有效的记录
2。增加的时候加入相关信息
3。我并不要直接删除。在删除的时候只让它变为无效字段。

请问这种情况是否能用多对多的映射。

很失望,没有查到相关的文档介绍有关在中间表生成和删除的时候可以变得灵活点,对hibernate也是不太熟悉,简单用用可以。

所以上来问问。之前没有实际用过多对多,只是学习时测试过。

还请大家指点,或者数据库设计有什么问题?

作者: lushan1314   发布时间: 2011-06-11

你的这种业务,不能用多对多实现。在hibernate的reference中,提到:
真实的多对多很少,往往在关联信息中需要保存更多的信息。
这时候就不能用多对多了。
应该用双向的一对多来实现,就是 A和B多对多,那么需要一个中间对象比如为C
就是A和C是一对多,
然后B和C也是一对多。
在C中就同时引用A和B,同时加入你想要的其它属性。

最后,因为你并不真正删除中间数据,所以需要特别的方法取得没有被删除的数据,就是对数据作一个过滤。

作者: Fly_m   发布时间: 2011-06-11