【问题标题】:Inserting map into database using hibernate使用休眠将地图插入数据库
【发布时间】:2012-03-20 20:50:10
【问题描述】:

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

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

我想通过将地图与Ref_key 持久保存到此数据库中来避免多个创建语句。地图包含键和相应的值。它将使用地图中的条目为该 Ref_key 创建多行。我正在使用休眠。

假设,我想坚持以下地图:

"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 开头并自动递增。

我应该遵循什么方法?

【问题讨论】:

  • 这种方式相当困难,但如果您使用具有这些字段(P_Key、Ref_Key、Key、Value)的对象列表,这样做很简单。
  • 如何在不多次调用 create/update 的情况下持久化自定义对象列表?

标签: java database hibernate key-value


【解决方案1】:

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

我建议的方法:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多