1

我在不同的 JVM 中运行相同应用程序的三个实例。我不希望数据库中的特定值同时被不同的应用程序修改。如何在 java 中强制执行此限制?

4

1 回答 1

2

这取决于您使用的技术堆栈。

  1. 您可能要考虑进行乐观或悲观并发控制
  2. 如果您需要悲观并发控制,并且如果您直接使用 JDBC,那么执行行锁定的方式将是 DBMS 特定的(某些 DBMS 甚至可能不允许您这样做)。例如,在 Oracle 中,您可以通过select * from table_name for update
  3. 如果您使用的是 JPA 或 Hibernate,则它由EntityManager.lock(entity)/包裹Session.lock(entity)(类似的东西)
  4. 在某些情况下,您甚至不需要做任何特别的事情。

除非您提供有关问题的更多详细信息,否则很难给您具体的建议。

于 2015-03-23T06:37:15.677 回答