关于hibernate的多对多,有看法,请大家来看看解决下我的疑问。

是这样的,鄙人对hibernate用的不是很多
关于hibernate多对多的时候
我们平时都是用set集合来
但是为什么不为hibernate像数据库那样,建立一个中间bean,来关联两边呢?

像下图这样
我的merchantInfo和MenuInfo是多对多的关系

写hql语句就这样写:
String hql = "from MenuInfo mi where mi.menuId in(select menuId from MerchantMenuInfo mmi where mmi.merchantId.merchantId=?) and mi.state=?";

请问这样写和写set集合的区别在哪里呢?哪个好呢?为什么没有见人用这样的方法呢?只是因为set方便么?

鄙人愚笨,还请各路同行兄弟指点一二。

使用Hibernate配置多对多关系,是可以创建中间实体来映射中间表的。具体你可以参见这篇博文 [url]http://dreamzhong.iteye.com/admin/blogs/1129207[/url]

还有一般在集合表示时,使用List的较多,Set的用法主要是在无序和非重复的,因为Set不允许出现重复的元素,这时你就要定义好元素里的比较方法,判断什么情况下认为两个元素是相同的。写成集合的好处就是便于你在java代码中进行操作。

可以拆分成两个多对一