2012-03-20 72 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会禁用自动递增主键的批处理!