我在不同的 JVM 中运行相同应用程序的三个实例。我不希望数据库中的特定值同时被不同的应用程序修改。如何在 java 中强制执行此限制?
问问题
1667 次
1 回答
2
这取决于您使用的技术堆栈。
- 您可能要考虑进行乐观或悲观并发控制
- 如果您需要悲观并发控制,并且如果您直接使用 JDBC,那么执行行锁定的方式将是 DBMS 特定的(某些 DBMS 甚至可能不允许您这样做)。例如,在 Oracle 中,您可以通过
select * from table_name for update
- 如果您使用的是 JPA 或 Hibernate,则它由
EntityManager.lock(entity)
/包裹Session.lock(entity)
(类似的东西) - 在某些情况下,您甚至不需要做任何特别的事情。
除非您提供有关问题的更多详细信息,否则很难给您具体的建议。
于 2015-03-23T06:37:15.677 回答