一。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);