利用关联关系操纵对象——一对多关系.pptxVIP

  • 0
  • 0
  • 约7.39千字
  • 约 30页
  • 2019-10-30 发布于湖北
  • 举报

利用关联关系操纵对象——一对多关系.pptx

JavaEE程序设计;;;学习任务;任务三 Hibernate的高级组件;一对多关联关系;1 单向关联 单向的一对多关系只需在一方进行映射配置,所以我们只配置客户(Customer)的映射文件Customer.hbm.xml,代码如【例7-13】所示。;【例7-13】Customer类的映射文件(Customer.hbm.xml) ?xml version=1.0? hibernate-mapping package=PO class name=Customer table=customer id column=ID name=id type=integer generator class=identity/ /id property name=cname column=CNAME type=string/ property name=bank column=BANK type=string/ property name=phone column=PHONE type=string/ !--一对多双向关联映射customer到orders,单的一方配置-- set name=orders table=orders cascade=all inverse=true lazy=false cascade=all sort= natural key column=CUSTOMER_ID/ one-to-many class=PO.Orders/ /set /class /hibernate-mapping;在以上映射文件中,property元素的insert属性表示被映射的字段是否出现在SQL的INSERT语句中;update属性表示被映射的字段是否出现在SQL的UPDATE语句中。 set元素描述的字段(本例中为orders)对应的类型为java.util.Set,它的各个属性的含义如下: name:字段名;本例的字段名为orders,它属于java.util.Set类型。 table:关联表名;本例中,orders的关联数据表名是orders。 lazy:是否延迟加载;lazy=false 表示立即加载。 inverse:用于表示双向关联中的被动的一端。inverse的值为false的一方负责维护关联关系。默认值为false。本例中Customer将负责维护它与Orders之间的关联关系。 cascade:级联关系;cascade=all表示所有情况下均进行级联操作,即包含save-update和delete 操作。 sort:排序关系,其可选取值为:unsorted(不排序),natural(自然排序),comparatorClass(由某个实现了parator接口的类型指定排序算法)。 key子元素的column 属性指定关联表(本例中为orders表)的外键。 one-to-many子元素的class 属性指定了关联类的名字。;如果要设置一对多双向关联关系,那么还需要在“多”方的映射文件中使用many-to-one标记。例如,在Customer与Orders一对多的双向关联中,除了修改Customer的映射文件Customer.hbm.xml外,还需要在Orders的映射文件Orders.hbm.xm中添加如下代码,如【例7-14】所示。;【例7-14】Orders类的映射文件(Orders.hbm.xml) ?xml version=1.0 encoding=UTF-8? !DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN /hibernate-mapping-3.0.dtd hibernate-mapping package=PO class name=Orders table=orders id column=ID name=id type=integer generator class=identity/ /id property name=orderno column=ORDERNO type=string/ property name=money column=MONEY type=double/ !--一对多双向关联映射的多的一方配置-- many-to-one name=customerclass=PO.Customer column=C

文档评论(0)

1亿VIP精品文档

相关文档