0

我有一个关于 NetBeans 平台中的记录锁定的问题。

所以我有一个带有 DBF 表的数据库。我有一个运行的 NetBeans 平台应用程序,它可以访问这些表。它将记录锁定在其中一个中。

我有另一个运行的 NetBeans 平台应用程序实例。我正在尝试这样做,因此如果打开了多个 NetBeans 平台应用程序实例,则只有 1 个可以访问数据库中的锁定记录。我没有做到这一点。

如果我错了,请纠正我,但 entitymanager.lock 特定于应用程序中的 EntityManage 实例。因此,如果我 Application1.entityManager.lock 锁定了一条记录,那么 Application2.entityManager 不会知道该锁吗?

所以我想另一个问题是:是否可以让同一个 NetBeans 应用程序的 2 个实例共享同一个 EntityManager?

谢谢你

4

1 回答 1

1

首先,EntityManager 的实例不能保证是线程安全的。这意味着规范不期望实现是线程安全的,并且不鼓励共享实体管理器的实例——当然,构建线程安全的实现当然是大声的。结果是你不想共享实体管理器。

锁定是通过实体管理器执行的,但行被锁定在数据库中。在规范中,这是用以下单词拼写的:

当使用悲观锁定来锁定实体实例时,持久性提供程序必须锁定与该实例的非集合值持久状态相对应的数据库行。

于 2012-06-02T10:18:34.243 回答