Hibernate中的BAG标签有什么用? 这个标签在什么时候用.我感觉我从来没用过.不知道好在哪里. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有序集合类 集合(sets) 包(bags) 所有的有序集合类(maps, lists, arrays)都拥有一个由<key>和 <index>组成的主键。 这种情况下集合类的更新是非常高效的——主键已经被有效的索引,因此当Hibernate试图更新或删除一行时,可以迅速找到该行数据。 集合(sets)的主键由<key>和其他元素字段构成。 对于有些元素类型来说,这很低效,特别是组合元素或者大文本、大二进制字段; 数据库可能无法有效的对复杂的主键进行索引。 另一方面,对于一对多、多对多关联,特别是合成的标识符来说,集合也可以达到同样的高效性能。( 附注:如果你希望SchemaExport为你的<set>创建主键, 你必须把所有的字段都声明为not-null="true"。) <idbag>映射定义了代理键,因此它总是可以很高效的被更新。事实上, <idbag>拥有着最好的性能表现。 Bag是最差的。因为bag允许重复的元素值,也没有索引字段,因此不可能定义主键。 Hibernate无法判断出重复的行。当这种集合被更改时,Hibernate将会先完整地移除 (通过一个(in a single DELETE))整个集合,然后再重新创建整个集合。 因此Bag是非常低效的。 Bag和list是反向集合类中效率最高的 在把bag扔进水沟之前,你必须了解,在一种情况下,bag的性能(包括list)要比set高得多: 对于指明了inverse="true"的集合类(比如说,标准的双向的一对多关联), 我们可以在未初始化(fetch)包元素的情况下直接向bag或list添加新元素! 这是因为Collection.add())或者Collection.addAll() 方法 对bag或者List总是返回true(这点与与Set不同)。因此对于下面的相同代码来说,速度会快得多。 与list标签功能相似.不过可以指定表中已经存在的字段为索引..不像list标签 关于jstl中c:cout标签的输出问题 struts2 的 map支持!!高手帮忙 为什么要用spring类框架? jsp用哪种包上传文件比较好 如何在使用https协议作为Web Services的传输协议的时候,怎么进行客户端身份验证? 弱问下,xml与html有什么区别? 怎样修改jtable的行间距? JDBC连接Sql Server2000出错,请指教 JBuilder+weblogic开发EJB的问题?? 做了一个医疗信息系统,怎么写代码加入下面的数据分析呀 整蒙了。。。JBOSS区还有个... 关于Hibernate存储过程的错误!
在把bag扔进水沟之前,你必须了解,在一种情况下,bag的性能(包括list)要比set高得多: 对于指明了inverse="true"的集合类(比如说,标准的双向的一对多关联), 我们可以在未初始化(fetch)包元素的情况下直接向bag或list添加新元素! 这是因为Collection.add())或者Collection.addAll() 方法 对bag或者List总是返回true(这点与与Set不同)。因此对于下面的相同代码来说,速度会快得多。
不过可以指定表中已经存在的字段为索引..
不像list标签