使用hibernate将映射插入数据库

时间:2012-03-20 12:19:09

标签: java database hibernate key-value

我有一个有四列的表,比如说

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

我想通过将地图和Ref_key一起保存到此数据库中来避免多个create语句。 Map包含键和相应的值。它将使用map中的条目为该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开头并自动递增。

我应该遵循什么方法?

1 个答案:

答案 0 :(得分:1)

如果您的意思是“插入语句”而不是“创建语句”;我不确定你是否可以:数据库必须接收3个INSERT才能在数据库中添加3行。但是Hibernate应该合并它们并且只发送1个网络请求(批量请求)。

我建议的方法:

  • 使用表格格式创建@Entity
  • 为地图的每个元素创建一个实体实例。
  • 只需坚持所有实例。
  • 关闭您的交易(我的意思是flush)。

有关批处理的详细信息,请参阅http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html。注意:不幸的是,Hibernate禁用了自动递增主键的批处理!