首先,你要清楚List和Set的区别:List是有序和可重复;Set是无序,但是不能重复.
其次,在一对多关联中.想象一下这种情况:你要更新从表记录;
从List中得到从表的一个对象引用,然后你对这样对象修改后,又放回List,你的List中就包括两个从表对象的引用.你在保存时,这两个引用,你觉得会保存两次还是一次?
而如果是Set,你得到从表对象的引用,之后修改从表对象的内容,你再往Set里面放,Set里面因为已经有这个从表对象的引用,就不会再给里面加.这样,你的Set里面还是只有一个从表对象的引用.这样你保存,这个从表对象只保存一次.
当然不是必须的,看你有用没用,如果没用的话就删掉.
映射中有的话bean中必须有,映射没有的话bean中可有可无
如果你hibernate配置不熟最好不要用set映射,很可能影响你的性能,举个例子:
一个学生对应他选的课程set
你要搜索所有学生
假如有100个学生
就会生成101个sql语句(一条搜所有学生,每个学生都生成一个搜索课程的sql)
所以要用set映射的话就得打开延迟加载,而延迟加载又得考虑事务性,所以还是不用的好
用户登录
还没有账号?立即注册
用户注册
投稿取消
| 文章分类: |
|
还能输入300字
上传中....
一个养狗的