我有一个有四列的表格
P_Key(int), Ref_Key(int), Key(String), Value(Integer).
我想通过将 map 与 Ref_key
一起保存到此数据库中来避免多个创建语句。映射包含键和相应的值。它将使用映射中的条目为该 Ref_key 创建多行。我正在使用 hibernate 。
假设,我想坚持以下 map :
"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
假设 key 从 1 开始并且自动递增。
我应该遵循什么方法?
最佳答案
如果您的意思是“插入语句”而不是“创建语句”;我不确定您是否可以:数据库必须接收 3 个 INSERT 才能在数据库中添加 3 行。但 Hibernate 应该合并它们并仅发送 1 个网络请求(批量请求)。
我建议的方法:
- 使用表格格式创建一个
@Entity
。 - 为 map 的每个元素创建一个实体实例。
- 只需保留所有实例即可。
- 关闭您的交易(我的意思是
刷新
)。
参见http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html有关批处理的更多信息。注意:不幸的是,Hibernate 禁用了自动递增主键的批处理!
关于java - 使用hibernate将 map 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9786613/