您的位置:首页 > 其它

关于idbag

2010-05-11 18:16 155 查看
前一篇文章提到了不能抓取两个以上的平行bag,而idbag是不存在这个问题的。原因就在于idbag会为其每个元素生成一个id,这样就可以区分不同元素了。bad因为无法区分元素带来了两个大问题:1.bag集合的更新效率非常低。因为对于一个修改过的bag集合,hibernate无法准确得知修改的元素对应于数据库中那一条记录,这样,hibernate就无法准确更新变动的记录,它只能把所有元素删除,再将集合重新同步到数据库中。在更新非反向bag集合时,从hibernate打出的sql可以看出,它先生成一条delete *语句,然后再生成n条insert,这个性能问题是很严重的。2.hibernate不允许同时抓取两个以上的平行bag集合。这也是因为bag无id导致无法区分重复记录而引起的。见前一篇文章。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: