2012-03-20 28 views
0

我有四列的表格,說插入到地圖數據庫中使用Hibernate

P_Key(int), Ref_Key(int), Key(String), Value(Integer). 

我想堅持用Ref_key沿着地圖到這個數據庫中,以避免重複創建語句。地圖包含鍵和相應的值。它將使用地圖中的條目爲該Ref_key創建多行。我正在使用hibernate。

想,我要堅持以下地圖:

"Me" -> 0 
"You" -> 10 
"They" -> 12 

和Ref_Key是123

然後它應該創建3行到表中。

P_Key Ref_Key Key Value 
1  123 "Me" 0 
2  123 "You" 10 
3  123 "They" 12 

假設密鑰從1開始並自動遞增。

我應該遵循什麼方法?

+0

這樣做相當困難,而且如果您使用帶有這些字段的對象列表(P_Key,Ref_Key,Key,Value),就很容易做到這一點。 – Viruzzo 2012-03-20 12:39:59

+0

我們如何在不調用多次創建/更新的情況下堅持自定義對象列表? – instanceOfObject 2012-03-20 13:40:31

回答

1

如果您的意思是「插入語句」而不是「創建語句」;我不確定你可以:數據庫必須接收3個INSERT才能在數據庫中添加3行。但是Hibernate應該合併它們並且只發送1個網絡請求(批量請求)。

的方法,我建議:

  • 創建一個表格式的@Entity
  • 爲您的地圖的每個元素創建一個實體實例。
  • 只需堅持所有的實例。
  • 關閉你的交易(我的意思是flush)。

有關配料的更多信息,請參閱http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html。注意:不幸的是,Hibernate會禁用自動遞增主鍵的批處理!

相關問題