mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-17 00:24:57 +00:00
HHH-5032 upgrade from optimistic to optimistic force does not work
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@19295 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
0ff854cabd
commit
bc1acf7028
@ -3225,8 +3225,8 @@ private void createLoaders() {
|
||||
readLoader :
|
||||
createEntityLoader( LockMode.PESSIMISTIC_FORCE_INCREMENT )
|
||||
);
|
||||
loaders.put( LockMode.OPTIMISTIC, readLoader );
|
||||
loaders.put( LockMode.OPTIMISTIC_FORCE_INCREMENT, readLoader );
|
||||
loaders.put( LockMode.OPTIMISTIC, createEntityLoader( LockMode.OPTIMISTIC) );
|
||||
loaders.put( LockMode.OPTIMISTIC_FORCE_INCREMENT, createEntityLoader(LockMode.OPTIMISTIC_FORCE_INCREMENT) );
|
||||
|
||||
loaders.put(
|
||||
"merge",
|
||||
|
@ -210,6 +210,28 @@ public void testLockOptimisticForceIncrement() throws Exception {
|
||||
em.close();
|
||||
}
|
||||
|
||||
public void testLockOptimisticForceIncrementDifferentEm() throws Exception {
|
||||
Lock lock = new Lock();
|
||||
lock.setName( "force" );
|
||||
EntityManager em1 = createIsolatedEntityManager();
|
||||
em1.getTransaction().begin();
|
||||
em1.persist( lock );
|
||||
em1.getTransaction().commit();
|
||||
em1.close();
|
||||
|
||||
EntityManager em2 = createIsolatedEntityManager();
|
||||
em2.getTransaction().begin();
|
||||
lock = em2.find( Lock.class, lock.getId(), LockModeType.OPTIMISTIC );
|
||||
assertEquals( "lock mode should be OPTIMISTIC ", LockModeType.OPTIMISTIC, em2.getLockMode(lock) );
|
||||
em2.lock( lock, LockModeType.OPTIMISTIC_FORCE_INCREMENT );
|
||||
assertEquals( "lock mode should be OPTIMISTIC_FORCE_INCREMENT ", LockModeType.OPTIMISTIC_FORCE_INCREMENT, em2.getLockMode(lock) );
|
||||
em2.getTransaction().commit();
|
||||
em2.getTransaction().begin();
|
||||
em2.remove( lock );
|
||||
em2.getTransaction().commit();
|
||||
em2.close();
|
||||
}
|
||||
|
||||
public void testContendedPessimisticLock() throws Exception {
|
||||
|
||||
EntityManager em = getOrCreateEntityManager();
|
||||
|
Loading…
x
Reference in New Issue
Block a user