2012-12-06 21 views
0

我是Hibernate的新手。我需要我的項目下面的場景。在休眠會話中設置保存點

例如我要插入類別爲TestHBDemo的20條記錄數據。

hbsession = HibernateUtil.getCurrentSession(); 
tx = hbsession.beginTransaction(); 
for(int index = 0; index < 20; ++index){ 
    TestHBDemo obj = new TestHBDemo(); 
    //setting data 

    hbsession.save(obj); 
} 
tx.commit(); 

如何插入僅1 - 通過記錄

hbsession = HibernateUtil.getCurrentSession(); 
tx = hbsession.beginTransaction(); 
for(int index = 0; index < 20; ++index){ 
    TestHBDemo obj = new TestHBDemo(); 
    //setting data 

    hbsession.save(obj); 

    if(somecondition) 
    // setting save points 
} 
//omitting unnecessary insertions 
tx.commit(); 

請之間在-省略20的記錄,優選地提供了我的溶液處於休眠而不是使用javax.sql中 - 10和15。

感謝.....

回答

-1

我用下面的代碼來達到的那樣:

hbsession = HibernateUtil.getCurrentSession(); 
    tx = hbsession.beginTransaction(); 
    for(int index = 0; index < 20; ++index){ 

    TestHBDemo obj = new TestHBDemo(); 
    //setting data 

     hbsession.save(d5campaingObj); 
     if(index == 9){ 
      hbsession.flush(); 
      hbsession.clear(); 
     } 
     if(index == 14){ 
      hbsession.clear();    
     } 
    } 
tx.commit(); 

,但我等待專家的更好的方法。 謝謝....

+0

我不明白這與hibernate有什麼關係。這只是你循環中的一個條件語句?你想知道什麼樣的功能可以取代Hibernate? – Affe

+0

我只添加了答案的一部分。從上面,我能夠通過flush()保持10條記錄,並省略了下5條記錄。我通過使用fush()來做到這一點。 但是,我無法將記錄保存爲JDBC中的保存點。因爲在沖洗之後,我無法刪除這些特定的刷新記錄並在提交之前插入新記錄... 如果不清楚,請詢問清晰度.... – NamingException

-1
hbsession = HibernateUtil.getCurrentSession(); 
tx = hbsession.beginTransaction(); 
for(int index = 0; index < 20; ++index){ 
    TestHBDemo obj = new TestHBDemo(); 
    //setting data 
    **if(index>10 && inxex<15) 
     continue**; 
    hbsession.save(obj); 
    // setting save points 
} 
tx.commit();