1

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

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

但是,这意味着我必须遍历所有元素并为每个元素建立新的连接。我可以一次插入整个列表吗?

4

3 回答 3

2

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

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

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

于 2012-05-30T20:11:37.533 回答
1

简单的答案不会。一些人将不得不对所有单个对象执行插入查询。

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

于 2012-05-30T15:47:48.673 回答
0

也许这个问题能让你走得更远。如果你知道如何在底层数据库上做你想做的事,你也可以使用本机查询(你可以通过 EntityManager 创建),我想。

于 2012-05-30T20:26:07.787 回答