2013-03-04 15 views
6

Durante l'inserimento nella query di ibernazione sto passando alcuni campi come oggetti di classe tabella che ho mappato alle tabelle corrispondenti, La query funziona correttamente ma la query sta diventando troppo grande perché ognuno di questi oggetti mappati viene aggiornato individualmente alle loro tabelle corrispondenti.Hibernate inserisci la query

Qualcuno può dirmi se questo è il modo corretto di inserimento e anche perché sto ricevendo quelle query di aggiornamento.

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

ho rimosso cascade="all" attributo da tutte le mappature .... ora sto ottenendo un riposo aggiornamento tutte chiare

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

Cosa intendi con "... diventare troppo grande"? Ti dà errori/problemi? L'intero punto di ibernazione è quello di "nascondere" l'interazione RDBMS ... –

+1

si prega di postare la mappatura di tool_modified_his_tbl e ortms.table_users, ad esempio –

+0

No Sir ... Non ricevo errori ma insieme con l'inserimento come mostrato nel output Sto ottenendo diversi aggiornamenti di Hibernate per gli oggetti mappati – Denny

risposta

3

Gli aggiornamenti indesiderati provengono dalla "a cascata tutte le impostazioni" . Si consiglia di configurarlo correttamente in base alle proprie esigenze. Per esempio, date un'occhiata qui: http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/

+0

signore, per favore puoi dirmi perché ora sto ricevendo solo un aggiornamento insieme a inserire – Denny

+1

che è difficile da dire senza guardare tutti i mapping. Ti sei anche occupato delle cascate in tool_modified_his_tbl? Per favore accetta la mia risposta se pensi che faccia del bene a te. Inoltre, se devi aggiungere qualcosa alla tua domanda, modifica la domanda stessa, non aggiungere una risposta. SO non è come un forum. grazie –

+0

Sì signore ho rimosso cascade = "all" da tool_modified_his_tbl .... ma l'aggiornamento è in arrivo – Denny

1

Usa dynamic-insert=true e dynamic-update=true a livello di classe

Dopo questo la vostra richiesta sarà breve. Inserirà e aggiornerà solo i valori non nulli specificati.

Problemi correlati