在插入hibernate查询期间,我将一些字段作为表类对象传递,我已映射到相应的表,查询工作正常,但查询变得太大,因为每个映射对象都会单独更新到相应的表.
任何人都可以告诉我这是否是正确的插入方式,以及为什么我得到这些更新查询.
Hibernate: insert into ortms.tool_modified_his_tbl (tool_desc,old_tool_desc,connec1,old_connec1,connec2,old_connec2,landed_cost,old_landed_cost,acqui_date,old_acqui_date,manuf_date,old_manuf_date,price_ref,old_price_ref,op_rate_cost,old_op_rate_cost,stb_rate_cost,old_stb_rate_cost,day_rate1_cost,old_day_rate1_cost,day_rate2_cost,old_day_rate2_cost,packermilling_cost,old_packermilling_cost,sale_value,old_sale_value,status,created_date,modified_date,tool_id,tool_modi_reas_id,tool_modi_usr_id,supplier_id,old_supplier_id,tc_status_id,old_tc_status_id,pricing_type_id,old_pricing_type_id,old_ownership_id,ownership_id,unit_id,old_unit_id,branch_id,old_branch_id,reta_tool_choice_id,old_reta_tool_choice_id,non_ser_tol_cho_id,old_non_ser_tol_cho_id,charge_by_id,old_charge_by_id,size_range_id,old_size_range_id,rack_id,old_rack_id) values (?,?,?) Hibernate: update ortms.master2_tool_master set tool_id=?,tool_desc=?,connec1=?,connec2=?,landed_cost=?,acqui_date=?,manuf_date=?,price_ref=?,op_rate_cost=?,stb_rate_cost=?,day_rate1_cost=?,day_rate2_cost=?,packermilling_cost=?,sale_value=?,uploaded_filename=?,uploaded_file=?,status=?,created_date=?,modified_date=?,supplier_id=?,tc_status_id=?,pricing_type_id=?,unit_id=?,reta_tool_choice_id=?,non_ser_tol_cho_id=?,branch_id=?,charge_by_id=?,size_range_id=?,rack_id=?,ownership_id=? where id=? Hibernate: update ortms.table_users set user_code=?,username=?,password=?,first_name=?,last_name=?,dept_id=?,branch_id=? where id=? Hibernate: update ortms.table_choice_select set choice_name=?,modified_date=? where id=? Hibernate: update ortms.master2_toolmast_chargeby set chargeby=?,modified_date=? where id=? Hibernate: update ortms.master2_sizerange set size_code=?,size_range=?,grp_lev3_id=? where id=? Hibernate: update ortms.master2_group_level3 set grp_lev3_name=?,grp_lev3_desc=?,grp_lev2_id=? where id=? Hibernate: update ortms.master2_group_level2 set grp_lev2_name=?,grp_lev2_desc=?,grp_lev1_id=? where id=? After calling action: master2.toolmaster.ToolMaster Time taken: 1234 ms
更新2
ToolModifiedHisTbl.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated Mar 2,2013 9:29:05 PM by Hibernate Tools 3.2.1.GA --> <hibernate-mapping> <class name="mappingfiles.ToolModifiedHisTbl" table="tool_modified_his_tbl" catalog="ortms"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="toolDesc" type="string"> <column name="tool_desc" length="65535" /> </property> <property name="oldToolDesc" type="string"> <column name="old_tool_desc" length="65535" /> </property> <property name="connec1" type="string"> <column name="connec1" length="60" /> </property> <property name="oldConnec1" type="string"> <column name="old_connec1" length="60" /> </property> <property name="connec2" type="string"> <column name="connec2" length="60" /> </property> <property name="oldConnec2" type="string"> <column name="old_connec2" length="60" /> </property> <property name="landedCost" type="string"> <column name="landed_cost" length="20" /> </property> <property name="oldLandedCost" type="string"> <column name="old_landed_cost" length="20" /> </property> <property name="acquiDate" type="date"> <column name="acqui_date" length="10" /> </property> <property name="oldAcquiDate" type="date"> <column name="old_acqui_date" length="10" /> </property> <property name="manufDate" type="date"> <column name="manuf_date" length="10" /> </property> <property name="oldManufDate" type="date"> <column name="old_manuf_date" length="10" /> </property> <property name="priceRef" type="string"> <column name="price_ref" length="20" /> </property> <property name="oldPriceRef" type="string"> <column name="old_price_ref" length="20" /> </property> <property name="opRateCost" type="string"> <column name="op_rate_cost" length="20" /> </property> <property name="oldOpRateCost" type="string"> <column name="old_op_rate_cost" length="20" /> </property> <property name="stbRateCost" type="string"> <column name="stb_rate_cost" length="20" /> </property> <property name="oldStbRateCost" type="string"> <column name="old_stb_rate_cost" length="20" /> </property> <property name="dayRate1Cost" type="string"> <column name="day_rate1_cost" length="20" /> </property> <property name="oldDayRate1Cost" type="string"> <column name="old_day_rate1_cost" length="20" /> </property> <property name="dayRate2Cost" type="string"> <column name="day_rate2_cost" length="20" /> </property> <property name="oldDayRate2Cost" type="string"> <column name="old_day_rate2_cost" length="20" /> </property> <property name="packermillingCost" type="string"> <column name="packermilling_cost" length="20" /> </property> <property name="oldPackermillingCost" type="string"> <column name="old_packermilling_cost" length="20" /> </property> <property name="saleValue" type="string"> <column name="sale_value" length="20" /> </property> <property name="oldSaleValue" type="string"> <column name="old_sale_value" length="20" /> </property> <property name="status" type="string"> <column name="status" length="20" /> </property> <property name="createdDate" type="timestamp"> <column name="created_date" length="19" /> </property> <property name="modifiedDate" type="timestamp"> <column name="modified_date" length="19" /> </property> <many-to-one class="mappingfiles.Master2ToolMaster" unique="true" name="toolId" column="tool_id" cascade="all" /> <many-to-one class="mappingfiles.TableModifiedReason" unique="true" name="toolModiReasId" column="tool_modi_reas_id" cascade="all" /> <many-to-one class="mappingfiles.TableUsers" unique="true" name="toolModiUsrId" column="tool_modi_usr_id" cascade="all" /> <many-to-one class="mappingfiles.TableSupplier" unique="true" name="supplierId" column="supplier_id" cascade="all" /> <many-to-one class="mappingfiles.TableSupplier" unique="true" name="oldSupplierId" column="old_supplier_id" cascade="all" /> <many-to-one class="mappingfiles.TableToolContractStatus" unique="true" name="tcStatusId" column="tc_status_id" cascade="all" /> <many-to-one class="mappingfiles.TableToolContractStatus" unique="true" name="oldTcStatusId" column="old_tc_status_id" cascade="all" /> <many-to-one class="mappingfiles.Master2PriceType" unique="true" name="pricingTypeId" column="pricing_type_id" cascade="all" /> <many-to-one class="mappingfiles.Master2PriceType" unique="true" name="oldPricingTypeId" column="old_pricing_type_id" cascade="all" /> <many-to-one class="mappingfiles.TableOwnership" unique="true" name="oldOwnershipId" column="old_ownership_id" cascade="all" /> <many-to-one class="mappingfiles.TableOwnership" unique="true" name="ownershipId" column="ownership_id" cascade="all" /> <many-to-one class="mappingfiles.Master2UnitMaster" unique="true" name="unitId" column="unit_id" cascade="all" /> <many-to-one class="mappingfiles.Master2UnitMaster" unique="true" name="oldUnitId" column="old_unit_id" cascade="all" /> <many-to-one class="mappingfiles.TableBranchesCompany" unique="true" name="branchId" column="branch_id" cascade="all" /> <many-to-one class="mappingfiles.TableBranchesCompany" unique="true" name="oldBranchId" column="old_branch_id" cascade="all" /> <many-to-one class="mappingfiles.TableChoiceSelect" unique="true" name="retaToolChoiceId" column="reta_tool_choice_id" cascade="all" /> <many-to-one class="mappingfiles.TableChoiceSelect" unique="true" name="oldRetaToolChoiceId" column="old_reta_tool_choice_id" cascade="all" /> <many-to-one class="mappingfiles.TableChoiceSelect" unique="true" name="nonSerTolChoId" column="non_ser_tol_cho_id" cascade="all" /> <many-to-one class="mappingfiles.TableChoiceSelect" unique="true" name="oldNonSerTolChoId" column="old_non_ser_tol_cho_id" cascade="all" /> <many-to-one class="mappingfiles.Master2ToolmastChargeby" unique="true" name="chargeById" column="charge_by_id" cascade="all" /> <many-to-one class="mappingfiles.Master2ToolmastChargeby" unique="true" name="oldChargeById" column="old_charge_by_id" cascade="all" /> <many-to-one class="mappingfiles.Master2Sizerange" unique="true" name="sizeRangeId" column="size_range_id" cascade="all" /> <many-to-one class="mappingfiles.Master2Sizerange" unique="true" name="oldSizeRangeId" column="old_size_range_id" cascade="all" /> <many-to-one class="mappingfiles.Master2Racks" unique="true" name="rackId" column="rack_id" cascade="all" /> <many-to-one class="mappingfiles.Master2Racks" unique="true" name="oldRackId" column="old_rack_id" cascade="all" /> </class> </hibernate-mapping>
TableUsers.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated Jan 13,2013 4:26:04 PM by Hibernate Tools 3.2.1.GA --> <hibernate-mapping> <class name="mappingfiles.TableUsers" table="table_users" catalog="ortms"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="userCode" type="string"> <column name="user_code" length="60" /> </property> <property name="username" type="string"> <column name="username" length="50" /> </property> <property name="password" type="string"> <column name="password" length="50" /> </property> <property name="firstName" type="string"> <column name="first_name" length="60" /> </property> <property name="lastName" type="string"> <column name="last_name" length="60" /> </property> <property name="status" type="string"> <column name="status" length="20" /> </property> <property name="createdDate" type="timestamp"> <column name="created_date" length="19" /> </property> <property name="modifiedDate" type="timestamp"> <column name="modified_date" length="19" /> </property> <many-to-one class="mappingfiles.TableDepartments" unique="true" name="deptId" column="dept_id" cascade="all" /> <many-to-one class="mappingfiles.TableBranchesCompany" unique="true" name="branchId" column="branch_id" cascade="all" /> </class> </hibernate-mapping>
更新3
我从所有映射中删除了cascade =“all”属性….现在我得到一个更新休息全部清除
Hibernate: insert into ortms.tool_modified_his_tbl (tool_desc,ownership_id=? where id=?
解决方法
不需要的更新来自“全部级联”设置.您可能希望根据需要正确配置它.例如,看看这里:
http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/