如何在Play JPA中保存对象列表

时间:2012-05-30 15:39:20

标签: java mysql jpa orm playframework

我有一个LinkedBlockingQueue,我想将所有元素保存到数据库中。我知道我可以一个一个地保存它:

ObjectModel om = new ObjectModel();
om.save();

然而,这意味着我必须循环遍历所有元素并为每个元素建立新连接。我可以一次插入整个清单吗?

3 个答案:

答案 0 :(得分:2)

在播放1.x中,当服务器收到请求时,play / jpa将向您的数据库打开一个事务。如果出现任何问题,该事务将自动回滚,否则在将响应发送给客户端时会自动提交。

因此,即使你遍历JPA实体并一个接一个地调用它们的save(),它们也将在同一个事务中以相同的连接执行。

我认为它在Play 2中的工作方式相同,但老实说,我不知道。

答案 1 :(得分:1)

简单的答案不会是NO。线下的某个人必须对所有单个对象执行插入查询。

您不必为每个插入创建新连接。您应该在每次迭代中在同一连接上创建连接和触发插入。

答案 2 :(得分:0)

也许this question会让你更进一步。如果你知道如何在底层数据库上做你想做的事情,你也可以使用本机查询(你可以通过EntityManager创建),我想。