Hibernate级联实践之一(one-to-one)

一。mapping

这里使用两个表,分别为TBL_OSU_PRODUCT_I,TBL_OSU_PRODUCT_C,后者使用前者的主键作为自己的主键。

mapping如下:重点为红色部分

1.TBL_OSU_PRODUCT_I

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.netqin.function.osuproduct.product.model.OsuProduct" table="TBL_OSU_PRODUCT_I" schema="OSU_WORK">
<id name="id" type="long">
<column name="PRDU_ID" precision="10" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_OSU_PRODUCT_I</param>
</generator>
</id>
<property name="prduName" type="string">
<column name="PRDU_NAME" length="200" not-null="true" />
</property>
<property name="prduDescription" type="string">
<column name="PRDU_DESCRIPTION" length="200" />
</property>

<one-to-one name="config" class="com.netqin.function.osuproduct.productconfig.model.OsuProductConfig" cascade="all" outer-join="true" lazy="false" />

</class>
</hibernate-mapping>

2.TBL_OSU_PRODUCT_C

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.netqin.function.osuproduct.productconfig.model.OsuProductConfig" table="TBL_OSU_PRODUCT_C" schema="OSU_WORK">
<id name="prduPrduidFk" type="java.lang.Long">
<column name="PRDU_PRDUID_FK" precision="10" scale="0" />
<generator class="foreign">
<param name="property">product</param>
</generator>
</id>
<property name="prduPermitpresub" type="java.lang.Long">
<column name="PRDU_PERMITPRESUB" precision="1" scale="0" not-null="true" />
</property>
<property name="prduPermitzerosub" type="java.lang.Long">
<column name="PRDU_PERMITZEROSUB" precision="1" scale="0" not-null="true" />
</property>


<one-to-one name="product" class="com.netqin.function.osuproduct.product.model.OsuProduct" constrained="true" />
</class>
</hibernate-mapping>

说明:1为主表,2为附属表,所以1对2的cascade="all",既增删改都由1级联负责。 lazy="false" 必须设置为false,负责页面中不能取得值。outer-join="true"关联方式使用外连接。

2中的constrained="true" 说明2引用了1的主键作为外键。

二。方法调用

1.add

object.getConfig().setProduct(object);

dao.save(object);

2.update

dao.update(object);

3.delete

dao.delete(object);

只有新增的时候需要指定


object.getConfig().setProduct(object);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值