EJB / JPA中的并发事务管理

时间:2013-02-24 09:55:51

标签: jpa ejb

我正在研究EJB 3.0,其中实体bean由JPA管理。我的问题是两个或更多用户是否会尝试同时使用相同的表单插入同一个表,JPA将如何处理这种情况。

1 个答案:

答案 0 :(得分:1)

通过使用数据库事务,它可以很好地管理它。如果两个线程同时尝试创建同一行(即使用相同的主键),则一个将成功,另一个将从数据库中获取异常,这将导致其事务的回滚。这意味着在同一事务中进行的所有其他插入,更新和删除也将被回滚,或者如果您愿意,也会被取消,从而使数据库处于一致状态。这是ACID中的A.

如果两个线程在同一个表中同时插入两个不同的行,那么数据库将处理这个就好了,并且将插入两个行。