JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Object Relational Mapping » Hibernate  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 Hibernate 做大量的 INSERT INTO t2(t2.f1,t2.f2, )SELECT (t1.f1, t1.f2,)FROM t1動作
godspeed1979





發文: 9
積分: 0
於 2010-10-12 16:46 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟有個問題想要請教版上的大大們

在使用Hibernate做大量資料處理的時候,要把某一個table的資料(設200萬筆)
經由某個條件的篩選insert到另一個table去,是否有比較好的策略呢?

前陣子我是把文字檔(CSV)先利用hibernate匯入DB,這時候可以使用的策略就是
在hibernate.cfg.xml裡面加上如下的這一段參數:
<property name="jdbc.batch_size">50</property>

然後在程式當中搭配以下的Java code來達到有效率的批次更新動作:
session.flush();
session.clear();

目前新的問題在於,我把近200萬筆的資料存進資料庫後,還需要從這個大table(A)
用條件篩選的方式轉存到另一個table(Black Eye。 我想有幾個方法:

1. 把A table的每一筆資料先抓出來生成物件,然後抓取屬性值塞入B table的建構子。

感覺這方法也不是不行,只是我不知道如何控制Hibernate一次只抓50筆資料來做,
而且感覺這種方法效率一定很差?

2. 直接執行原生的SQL

3. 執行相對應的HQL

那麼是否還有其他的方式? 又大家比較建議哪一種方式(效率較好的)呢?

謝謝大家


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
2407 Hibernate 做大量的 INSERT INTO t2(t2.f1,t2.f2, )SELECT (t1.f1, t1.f2,)FROM t1動作 godspeed1979 640 2010-10-12 16:46
2260 Re:Hibernate 做大量的 INSERT INTO t2(t2.f1,t2.f2, )SELECT (t1.f1, t1.f2,)FROM t1動作 javaZero 70 2010-10-12 20:24
2041 Re:Hibernate 做大量的 INSERT INTO t2(t2.f1,t2.f2, )SELECT (t1.f1, t1.f2,)FROM t1動作 phuang3 32 2011-08-22 13:55
» JWorld@TW »  Object Relational Mapping » Hibernate

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8