首页 > 代码库 > (十一)Hibernate中的多表操作(1):单向一对多
(十一)Hibernate中的多表操作(1):单向一对多
一、单向一对多()
- 案例一(用XML文件配置): 一个会员(Member)可以有多个订单(Order),加载会员的时候自动加载订单,但是订单无法查看会员信息,
public class Member { private String id; private String name; private Integer age; private Set<Order> orders = new HashSet<Order>(); //该Set集合里存放的是“多”方,加载会员就会加载订单。 ...... }
public class Order { private Integer id; private String name; private String num; private String memberId; // 外键,对应Membern类的主键即id ...... }
- 单向一对多的映射文件 :
Member.hbm.xml: <hibernate-mapping package="org.louis.domain"> <class name="Member" table="TEST_MEMBER"> <id name="id" column="ID"> <generator class="uuid.hex"></generator> </id> <property name="age" column="AGE"></property> <property name="name" column="NAME"></property> <!--set元素,就是定义一个集合,它的name属性值是对应的POJO中的相关属性名称--> <set name="orders" cascade="all"> <key column="MEMBER_ID"></key><!--指定“多”的一段的外键,与“一”端得主键相关联,这里的column=“MEMBER_ID”是指数据库中的字段,而非bean中的属性--> <one-to-many class="Order"/><!--指定了“多”端对应的类--> </set> </class> </hibernate-mapping>
Order.hbm.xml: <hibernate-mapping package="org.louis.domain"> <class name="Order" table="TEST_ORDER"> <id name="id" column="ID"> <generator class="native"></generator> </id> <property name="name" column="NAME"></property> <property name="num" column="NUM"></property> <!--外键--> <property name="memberId" column="MEMBER_ID"></property> </class> </hibernate-mapping>
- 本例的关联关系时单向,且关联关系由Member来维护(),而“多”的一方并不知道它自己和Member有任何关系。
(十一)Hibernate中的多表操作(1):单向一对多
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。