求教 Hibernater中双向 many-to-one关系的插入问题
配置1 及对应的数据字段
ProductAttributeValue.hbm.xml:
<hibernate-mapping
>
<class
name="com.pubone.emarket.model.ProductAttributeValue"
table="eb_prd_opt_attri_value"
>
<id
name="productAttributeValueId"
column="product_attribute_value_id"
type="java.lang.Long"
>
<generator class="native">
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-ProductAttributeValue.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="attributeValue"
type="java.lang.String"
update="true"
insert="true"
length="255"
>
<column
name="attribute_value"
/>
</property>
<property
name="sortOrder"
type="int"
update="true"
insert="true"
>
<column
name="sort_Order"
sql-type="number(3)"
/>
</property>
<property
name="idType"
type="int"
update="true"
insert="true"
>
<column
name="id_type"
length="1"
sql-type="smallint"
/>
</property>
<property
name="idValue"
type="java.lang.Long"
update="true"
insert="true"
>
<column
name="id_value"
/>
</property>
<property
name="textFieldValue"
type="java.lang.String"
update="true"
insert="true"
>
<column
name="text_field_value"
length="255"
default="''"
/>
</property>
<property
name="intFieldValue"
type="int"
update="true"
insert="true"
>
<column
name="int_field_value"
/>
</property>
<property
name="floatFieldValue"
type="float"
update="true"
insert="true"
>
<column
name="float_field_value"
/>
</property>
<property
name="dateFieldValue"
type="timestamp"
update="true"
insert="true"
>
<column
name="date_field_value"
/>
</property>
<many-to-one
name="productAttribute"
column="attribute_id"
class="com.pubone.emarket.model.ProductAttribute"
cascade="none"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-ProductAttributeValue.xml
containing the additional properties and place it in your merge dir.
-->
</class>
create table "QQTEXUSER"."EB_PRD_OPT_ATTRI_VALUE"(
"PRODUCT_ATTRIBUTE_VALUE_ID" NUMBER(19) not null,
"ATTRIBUTE_ID" NUMBER(19),
"SORT_ORDER" NUMBER(3),
"ATTRIBUTE_VALUE" VARCHAR2(255),
"ID_TYPE" NUMBER(3),
"ID_VALUE" NUMBER(3),
"TEXT_FIELD_VALUE" VARCHAR2(255),
"INT_FIELD_VALUE" NUMBER(3),
"FLOAT_FIELD_VALUE" NUMBER(9,3),
"DATE_FIELD_VALUE" DATE,
constraint "SYS_C0010287" primary key ("PRODUCT_ATTRIBUTE_VALUE_ID")
);
alter table "QQTEXUSER"."EB_PRD_OPT_ATTRI_VALUE"
add constraint "FK45F1E91CE0B52995"
foreign key ("ATTRIBUTE_ID")
references "QQTEXUSER"."EB_PRODUCT_OPTION_ATTRIBUTE"("ATTRIBUTE_ID");
create unique index "QQTEXUSER"."SYS_C0010287" on "QQTEXUSER"."EB_PRD_OPT_ATTRI_VALUE"("PRODUCT_ATTRIBUTE_VALUE_ID");
配置2 及对应的数据字段
ProductAttribute.hbm.xml:
<hibernate-mapping
>
<class
name="com.pubone.emarket.model.ProductAttribute"
table="eb_product_attribute"
>
<id
name="attributeId"
column="attribute_id"
type="java.lang.Long"
>
<generator class="native">
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-ProductAttribute.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="name"
type="java.lang.String"
update="true"
insert="true"
>
<column
name="option_value_name"
length="64"
default="''"
/>
</property>
<property
name="dataType"
type="int"
update="true"
insert="true"
>
<column
name="data_type"
length="1"
sql-type="smallint"
/>
</property>
<property
name="status"
type="int"
update="true"
insert="true"
>
<column
name="status"
length="1"
sql-type="smallint"
/>
</property>
<property
name="creator"
type="java.lang.String"
update="true"
insert="true"
>
<column
name="creator"
length="100"
default="''"
/>
</property>
<property
name="createdDate"
type="timestamp"
update="true"
insert="true"
>
<column
name="created_date"
/>
</property>
<property
name="modifiedDate"
type="timestamp"
update="true"
insert="true"
>
<column
name="modified_date"
/>
</property>
<property
name="mender"
type="java.lang.String"
update="true"
insert="true"
>
<column
name="mender"
length="100"
default="''"
/>
</property>
<property
name="sortOrder"
type="int"
update="true"
insert="true"
>
<column
name="sort_order"
/>
</property>
<property
name="isNeeded"
type="int"
update="true"
insert="true"
>
<column
name="is_Needed"
sql-type="number(1)"
/>
</property>
<property
name="valueDisplayType"
type="int"
update="true"
insert="true"
>
<column
name="value_Display_Type"
sql-type="number(1)"
/>
</property>
<many-to-one
name="businessCategory"
class="com.pubone.emarket.model.BusinessCategory"
cascade="none"
outer-join="auto"
update="true"
insert="true"
column="business_category_id"
/>
<set
name="productAttributeValue"
lazy="true"
inverse="false"
cascade="all"
sort="unsorted"
>
<key
column="attribute_id"
>
</key>
<one-to-many
class="com.pubone.emarket.model.ProductAttributeValue"
/>
</set>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-ProductAttribute.xml
containing the additional properties and place it in your merge dir.
-->
</class>
create table "QQTEXUSER"."EB_PRODUCT_ATTRIBUTE"(
"ATTRIBUTE_ID" NUMBER(10) not null,
"BUSINESS_CATEGORY_ID" NUMBER(10),
"ATTRIBUTE_NAME" VARCHAR2(64),
"DATA_TYPE" NUMBER(1),
"STATUS" NUMBER(3),
"CREATOR" VARCHAR2(100),
"CREATED_DATE" DATE,
"MODIFIED_DATE" DATE,
"MENDER" VARCHAR2(100),
"SORT_ORDER" NUMBER(3),
"IS_NEEDED" NUMBER(3),
"ATTRIBUTE_VALUE_DISPAY" NUMBER(3),
"VALUE_DISPLAY_TYPE" NUMBER(3),
"OPTION_VALUE_NAME" VARCHAR2(64),
constraint "SYS_C0012177" primary key ("ATTRIBUTE_ID")
);
alter table "QQTEXUSER"."EB_PRODUCT_ATTRIBUTE"
add constraint "PRO_ATTRI_CATE_FK"
foreign key ("BUSINESS_CATEGORY_ID")
references "QQTEXUSER"."EB_BUSINESS_CATEGORY"("BUSINESS_CATEGORY_ID");
create unique index "QQTEXUSER"."SYS_C0012177" on "QQTEXUSER"."EB_PRODUCT_ATTRIBUTE"("ATTRIBUTE_ID");