请教关于hibernate的关联

看到很多example里演示一对于,多对多等的关联都是以set作为“多”方的类型。但hibernate里面还提供了其他的类型list,map,bag等。能否对set和List的性能及各自适用情况做一个说明及对比。

还有一个问题。就是<any>tag是做什么用的。reference里面语焉不详。

奇怪怎么变掉了。我的意思是"any"这个元素代表什么意思。reference里面语焉不详。
关于顶帖,我想list和set应该只有数据结构意义上set和list的差别。

刚才查了hibernate.list和hibernate.set的定义,才发现原来list根本没有order-by之类的定义,而hibernate.set提供里order-by,sort(我想应该分别对应于LinkedHashSet,SortedSet的实现)。所以对于一般的应用,Set当然适用的情况更多比list。我想对于不需要order-by或则sort(这两个应该是不能同时作用的)的应用,list是不是应该比set性能更好,否则它就没有存在的必要了。
久没有用hibernate,最近新拿出来温习温习,就又胡思乱想了一下。

一起讨论讨论:
1. list是应该比set性能更好
2. list允许重复值出现,而set则不允许,这个兼容性不好,就我不使用数组一样,这会为系统稳定性打下隐患,使用set,一旦数据库记录有重复,就会报错,使用框架情况下,一旦报错,就会头疼死你!

所以,我开发的Jdon框架都尽可能使用List这样宽泛的东东。

3. list读取顺序是按照你插入顺序,至少我亲自测试了很多次,没发现意外,当然如果用Map就没有这么幸运了。
list的这个顺序符合自然,大部分情况下,我们不需要Collection自说自话地自己去排序,影响我们判断。

尽量不要使用关联,关联应尽量简单!

Hibernate关联是其实是域模式设计的关联,取决于业务设计,不是由程序员想怎么样就怎么样的。