欢迎来到天天文库
浏览记录
ID:44226254
大小:289.50 KB
页数:15页
时间:2019-10-19
《23_Hibernate对象关系映射_一对多》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate对象关系映射_一对多回顾Hibernate对象之间的关联关系理解关联关系关联关系类型1(一对一)关联关系类型2(一对多)关联关系类型3(多对多)一对一的外键关联以及主键关联一对一的外键关联一对一主键关联本章目标一对多/多对一的关联操作理解一对多/多对一配置映射关系关联操作多对多的关联操作理解多对多配置映射关系关联操作理解一对多/多对一一对多关联/多对一关联 一对多和多对一关联分为单向关联和双向关联,在此,着重介绍双向关联。假设有两个实体,客户对象(Customer)和订单对象(O
2、rder),一个客户可以有多个订单,表现为一对多的关系,一个订单只能属于一个客户,表现为多对一的关系。下面是Customer和Order所对应的映射文件:配置映射关系●Customer.hbm.xml:
3、配置映射关
4、系元素包括以下属性:name:设定待映射的持久化类的属性名,这里为Customer类的Orders属性;lazy:是否采用延迟加载。inverse:用于标识双向关联中的被动方一端,inverse=false的一方(主控方)负责维护关联关系,默认值为false。cascade操作级联(cascade)关系,可选值为all:所有情况下均进行级联操作;none:所有情况下均不进行级联操作;save-update:在执行save-update时进行级联操作.元素还包含两个子元素:
5、和,其中元素设定与所关联的持久化类对应的表的外键,此处为order表的customer_id字段;元素设定所关联的持久化类,此处为Order类。配置映射关系●Order.hbm.xml:6、"uuid.hex"/>配置
6、"uuid.hex"/>
7、映射关系many-to-one节点column子节点有以下属性:column属性总是和关联类的主键id相对应(对于Order来说,关联类是Customer),因此Hibernate会根据order表中的customer_id以及customer表中设置的id列,取出order.customer_id=customer.id的记录,构造成Customer对象返回给Order类。实例操作publicvoidsave(){Sessionsession=null;Transactiontx=null;try{
8、session=HibernateSessionFactory.getSession();tx=session.beginTransaction();Customercustomer=newCustomer(“admin");Setorders=customer.getOrders();for(inti=0;i<3;i++){Orderorder=newOrder();order.setOrderName(“myorder”+i);orde
此文档下载收益归作者所有