2013-03-04 30 views
6

Trong khi chèn trong truy vấn hibernate tôi đang đi qua một số trường như đối tượng lớp bảng mà tôi đã ánh xạ tới bảng tương ứng, truy vấn hoạt động tốt nhưng truy vấn đang trở nên quá lớn vì mỗi đối tượng được ánh xạ này đang được cập nhật riêng cho các bảng tương ứng.Hibernate insert query

Bất cứ ai có thể vui lòng cho tôi biết đây có phải là cách chèn đúng hay không cũng là lý do tôi nhận được các truy vấn cập nhật đó.

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=?, status=?, created_date=?, modified_date=?, dept_id=?, branch_id=? where id=? 
Hibernate: update ortms.table_choice_select set choice_name=?, status=?, created_date=?, modified_date=? where id=? 
Hibernate: update ortms.master2_toolmast_chargeby set chargeby=?, status=?, created_date=?, modified_date=? where id=? 
Hibernate: update ortms.master2_sizerange set size_code=?, size_range=?, status=?, created_date=?, modified_date=?, grp_lev3_id=? where id=? 
Hibernate: update ortms.master2_group_level3 set grp_lev3_name=?, grp_lev3_desc=?, created_date=?, modified_date=?, status=?, grp_lev2_id=? where id=? 
Hibernate: update ortms.master2_group_level2 set grp_lev2_name=?, grp_lev2_desc=?, created_date=?, modified_date=?, status=?, grp_lev1_id=? where id=? 
After calling action: master2.toolmaster.ToolMaster Time taken: 1234 ms 

updation 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> 

updation 3

tôi đã gỡ bỏ cascade="all" thuộc tính từ tất cả các ánh xạ .... bây giờ tôi nhận được một bản cập nhật phần còn lại tất cả rõ ràng

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=? 
+0

Bạn có ý gì khi "... trở nên quá lớn"? Nó có cho bạn lỗi/vấn đề không? Toàn bộ các điểm của hibernate là để "ẩn" tương tác RDBMS ... –

+1

xin vui lòng gửi bản đồ của tool_modified_his_tbl và ortms.table_users, ví dụ –

+0

Không Sir ... Tôi không nhận được bất kỳ lỗi nào nhưng cùng với chèn như được hiển thị trong đầu ra tôi nhận được một số cập nhật Hibernate cho các đối tượng ánh xạ – Denny

Trả lời

3

Các cập nhật không mong muốn đến từ "thác tất cả" Cài đặt . Bạn có thể muốn cấu hình nó đúng theo nhu cầu của bạn. Ví dụ, có một cái nhìn ở đây: http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/

+0

thưa bạn có thể vui lòng cho tôi biết lý do tại sao bây giờ tôi chỉ nhận được một bản cập nhật cùng với chèn – Denny

+1

thật khó để nói mà không cần nhìn vào tất cả các ánh xạ. Bạn cũng đã chăm sóc các thác trong tool_modified_his_tbl? Vui lòng chấp nhận câu trả lời của tôi nếu bạn cho rằng nó phù hợp với bạn. Ngoài ra, nếu bạn cần thêm nội dung nào đó vào câu hỏi của mình, hãy chỉnh sửa câu hỏi, không thêm câu trả lời. SO không giống như một diễn đàn. thanks –

+0

Vâng, tôi đã xóa cascade = "all" từ tool_modified_his_tbl .... nhưng vẫn đang cập nhật – Denny

1

Sử dụng dynamic-insert=truedynamic-update=true ở cấp lớp

Sau khi truy vấn của bạn này sẽ là ngắn. Nó sẽ chèn và cập nhật chỉ các giá trị null không được chỉ định.