




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
hibernate 值类型的set、bag、list和map (非实体bean类型的) 分类: hibernate 2011-10-19 18:01 35人阅读 评论(0) 收藏 举报 选择集合接口:1、使用元素映射java.util.Set。使用java.util.HashSet初始化集合。它是无序且不允许重复。2、使用映射java.util.SortedSet。且sort属性可以设置成比较器或者用于内存的排序的自然顺序。使用java.util.TreeSet实例初始化集合。3、使用映射java.util.List。在集合表中用一个额外的索引列保存每个元素的位置。使用java.util.ArrayList初始化。4、使用或者映射java.util.Collection。java没有Bag接口或者实现;然而,java.util.Collection允许包语义。hibernate支持持久化的包。使用java.util.ArrayList初始化包集合。5、使用映射java.util.Map,保存键和值对。使用java.util.HashMap初始化属性。6、使用映射java.util.SortedMap。且sort属性可以设置为比较器或者用于内存排序的自然顺序。使用java.util.TreeMap实例初始化该集合。7、hibernate使用和支持数组。但是他们很少使用在领域模型中。因为hibernate无法包装数组属性,没有字节码基础设施(BCI),就失去了延迟加载,以及持久化集合优化过的脏检查、基本的便利和性能特性。映射Set:无序不允许重复:类: view plaincopy to clipboardprint?1. /*2. * 实现String类型的set集合,非class(实体bean)集合3. */4. publicclassItemimplementsSerializable 5. privateintitemId;6. privateString itemName;7. 8. /不允许重复9. privateSet images =newHashSet();配置文件: view plaincopy to clipboardprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 插入2: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().add(image1);4. item.getImages().add(image1);5. hibernate 打印 sql:6. Hibernate: insert into Item (itemName) values (?)7. Hibernate: insert into ITEM_IMAGES (ITEM_ID, FILENAME) values (?, ?)插入2: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().add(image1);4. item.getImages().add(image2);5. hibernate打印sql:6. Hibernate: insert into Item (itemName) values (?)7. Hibernate: insert into ITEM_IMAGES (ITEM_ID, FILENAME) values (?, ?)8. Hibernate: insert into ITEM_IMAGES (ITEM_ID, FILENAME) values (?, ?)映射bag:有序允许重复:类: view plaincopy to clipboardprint?1. /*2. * 允许重复元素的无序集合bag3. */4. publicclassItemimplementsSerializable 5. privateInteger itemId;6. privateString itemName;7. privateCollection images =newArrayList();配置文件: view plaincopy to clipboardprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 插入: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().add(image1);4. item.getImages().add(image1);hibernate打印sql:Hibernate: insert into Item (itemName) values (?)Hibernate: select max(ITEM_IMAGE_ID) from ITEM_IMAGESHibernate: insert into ITEM_IMAGES (ITEM_ID, ITEM_IMAGE_ID, FILENAME) values (?, ?, ?)Hibernate: insert into ITEM_IMAGES (ITEM_ID, ITEM_IMAGE_ID, FILENAME) values (?, ?, ?)注意:这里的generator给的类型是increment,如果mysql给的是native或者identity会报错:org.hibernate.id.IdentifierGeneratorFactory$2 cannot be cast to java.lang.Integer但是oracle使用native、sequence不会报错(应该是这个版本的hibernate的bug)*删除*:(如果没记错的话,类类型的set集合,是不会删除子集的,只默认级联一的一端)这里是都级联删除的Item item = (Item) session.get(Item.class, 2);session.delete(item); Hibernate: select item0_.itemId as itemId0_0_, item0_.itemName as itemName0_0_ from Item item0_ where item0_.itemId=?Hibernate: delete from ITEM_IMAGES where ITEM_ID=?Hibernate: delete from Item where itemId=?映射list(允许重复,有序): view plaincopy to clipboardprint?1. /*2. * 映射list3. */4. publicclassItemimplementsSerializable 5. privateInteger itemId;6. privateString itemName;7. privateList images =newArrayList();配置文件: view plaincopy to clipboardprint?1. 2. 3. 4. 5. 6. 7. 8. 9. !-2.X兼容方式,不在使用 -10. 11. 12. 13. 14. 插入: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().add(image1);4. item.getImages().add(image1);hibernate打印sql:Hibernate: insert into Item (itemName) values (?)Hibernate: insert into ITEM_IMAGES (ITEM_ID, POSITION, FILENAME) values (?, ?, ?)Hibernate: insert into ITEM_IMAGES (ITEM_ID, POSITION, FILENAME) values (?, ?, ?) (POSITION记录的就是list的指针位置0、1、2.)删除: view plaincopy to clipboardprint?1. Item item = (Item) session.get(Item.class,2);2. session.delete(item);Hibernate: select item0_.itemId as itemId0_0_, item0_.itemName as itemName0_0_ from Item item0_ where item0_.itemId=?Hibernate: delete from ITEM_IMAGES where ITEM_ID=?Hibernate: delete from Item where itemId=? 映射map(无序,不允许重复):类: view plaincopy to clipboardprint?1. /*2. * 映射map3. */4. publicclassItemimplementsSerializable 5. privateintitemId;6. privateString itemName;7. 8. privateMap images =newHashMap();配置文件: view plaincopy to clipboardprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 插入: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().put(imagename1,filename1);4. item.getImages().put(imagename1,filename1);hibernate打印sql:Hibernate: insert into Item (itemName) values (?)Hibernate: insert into ITEM_IMAGES (ITEM_ID, IMAGENAME, FILENAME) values (?, ?, ?)映射sortedmap,排序集合:类: view plaincopy to clipboardprint?1. /*2. * 映射sortedmap,排序集合3. */4. publicclassItemimplementsSerializable 5. privateintitemId;6. privateString itemName;7. 8. privateSortedMap images =newTreeMap();配置文件: view plaincopy to clipboardprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 插入: view plaincopy to clipboardprint?1. Item item =newItem();2. item.setItemName(hello world);3. item.getImages().put(imagename2,filename2);4. item.getImages().put(imagename1,filename1);hibernate打印sql:Hibernate: insert into Item (itemName) values (?)Hib
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025辽宁兴城市人民医院、中医医院招聘急需紧缺人才37人模拟试卷及答案详解(易错题)
- 衡水市人民医院B超仪器规范操作考核
- 2025广东中山市三乡镇社区卫生服务中心招聘聘用制医务人员3人考前自测高频考点模拟试题附答案详解(完整版)
- 2025湖北荆州市石首市第二批校园招聘教师6人考前自测高频考点模拟试题及完整答案详解
- 2025中心医院护理物资与高值耗材精细化管理试题
- 唐山市人民医院牙拔除术操作资格认证
- 衡水市中医院泌尿系统疾病编码考核
- 2025儿童医院脊柱畸形后路截骨矫形技术准入考核
- 邢台市中医院骨关节炎阶梯化治疗考核
- 衡水市人民医院学科空间规划考核
- 烘干塔合作协议合同范本
- 2025至2030年中国洗护用品行业市场行情监测及前景战略研判报告
- 肿瘤中心建设汇报
- 无人机操控与维护专业教学标准(中等职业教育)2025修订
- 十五五护理工作发展规划
- 消防宣传安全常识课件
- 2025年内蒙古鄂尔多斯市国源矿业开发有限责任公司招聘笔试参考题库含答案解析
- 2025年广州市越秀区九年级中考语文一模试卷附答案解析
- GB/T 1040.1-2025塑料拉伸性能的测定第1部分:总则
- 学校食堂食品安全风险管控清单
- DB54/T 0316-2024藏香生产技术规程
评论
0/150
提交评论