@Test public void testCriteria() { Session session = openSession(); session.beginTransaction(); Criteria criteria = session.createCriteria( Door.class ); criteria.setLockMode( LockMode.PESSIMISTIC_WRITE ); criteria.setFirstResult( 2 ); criteria.setMaxResults( 2 ); @SuppressWarnings("unchecked") List<Door> results = criteria.list(); assertEquals( 2, results.size() ); for ( Door door : results ) { assertEquals( LockMode.PESSIMISTIC_WRITE, session.getCurrentLockMode( door ) ); } session.getTransaction().commit(); session.close(); }
@Test public void testHql() { Session session = openSession(); session.beginTransaction(); Query qry = session.createQuery( "from Door" ); qry.getLockOptions().setLockMode( LockMode.PESSIMISTIC_WRITE ); qry.setFirstResult( 2 ); qry.setMaxResults( 2 ); @SuppressWarnings("unchecked") List<Door> results = qry.list(); assertEquals( 2, results.size() ); for ( Door door : results ) { assertEquals( LockMode.PESSIMISTIC_WRITE, session.getCurrentLockMode( door ) ); } session.getTransaction().commit(); session.close(); }
assertTrue( s.getCurrentLockMode(b)==LockMode.WRITE && s.getCurrentLockMode( result[1] )==LockMode.WRITE ); tx.commit(); assertTrue( s.getCurrentLockMode( b ) == LockMode.NONE ); s.createQuery( "from Foo foo" ).list(); assertTrue( s.getCurrentLockMode(b)==LockMode.NONE ); q = s.createQuery("from Foo foo"); q.setLockMode( "foo", LockMode.READ ); q.list(); assertTrue( s.getCurrentLockMode( b ) == LockMode.READ ); s.evict( baz ); tx.commit(); assertTrue( s.getCurrentLockMode(b)==LockMode.NONE ); s.delete( s.load( Baz.class, baz.getCode() ) ); assertTrue( s.getCurrentLockMode(b)==LockMode.NONE ); tx.commit(); s.close(); result = (Object[]) q.list().get(0); if ( supportsLockingNullableSideOfJoin( getDialect() ) ) { assertTrue( s.getCurrentLockMode( result[0] )==LockMode.UPGRADE && s.getCurrentLockMode( result[1] )==LockMode.UPGRADE );
@Test @FailureExpected( jiraKey = "HHH-1645", message = "Session.refresh with LockOptions does not work on uninitialized proxies" ) public void testRefreshLockUninitializedProxy() { Session s = openSession(); Transaction t = s.beginTransaction(); DataPoint dp = newPersistentDataPoint( s ); dp = ( DataPoint ) s.load( DataPoint.class, new Long( dp.getId() ) ); assertFalse( Hibernate.isInitialized( dp ) ); s.refresh( dp, LockOptions.UPGRADE ); assertSame( LockOptions.UPGRADE.getLockMode(), s.getCurrentLockMode( dp ) ); s.delete( dp ); t.commit(); s.close(); }
@Test public void testRefreshLockInitializedProxy() { Session s = openSession(); Transaction t = s.beginTransaction(); DataPoint dp = newPersistentDataPoint( s ); dp = ( DataPoint ) s.load( DataPoint.class, new Long( dp.getId() ) ); dp.getX(); assertTrue( Hibernate.isInitialized( dp ) ); s.refresh( dp, LockOptions.UPGRADE ); assertSame( LockOptions.UPGRADE.getLockMode(), s.getCurrentLockMode( dp ) ); s.delete( dp ); t.commit(); s.close(); }
@Test public void testLockUninitializedProxy() { Session s = openSession(); Transaction t = s.beginTransaction(); DataPoint dp = newPersistentDataPoint( s ); dp = ( DataPoint) s.load( DataPoint.class, new Long( dp.getId() ) ); assertFalse( Hibernate.isInitialized( dp ) ); s.buildLockRequest( LockOptions.UPGRADE ).lock( dp ); assertSame( LockOptions.UPGRADE.getLockMode(), s.getCurrentLockMode( dp ) ); s.delete( dp ); t.commit(); s.close(); } }
@Test @FailureExpected( jiraKey = "HHH-1645", message = "Session.refresh with LockOptions does not work on uninitialized proxies" ) public void testRefreshLockUninitializedProxyThenRead() { Session s = openSession(); Transaction t = s.beginTransaction(); DataPoint dp = newPersistentDataPoint( s ); dp = ( DataPoint ) s.load( DataPoint.class, new Long( dp.getId() ) ); assertFalse( Hibernate.isInitialized( dp ) ); s.refresh( dp, LockOptions.UPGRADE ); dp.getX(); assertSame( LockOptions.UPGRADE.getLockMode(), s.getCurrentLockMode( dp ) ); s.delete( dp ); t.commit(); s.close(); }
assertEquals( LockMode.WRITE, s.getCurrentLockMode( foo ) ); s.refresh(foo, LockMode.UPGRADE); if ( getDialect().supportsOuterJoinForUpdate() ) { assertEquals( LockMode.UPGRADE, s.getCurrentLockMode( foo ) );
@Test // @Ignore( "Support for locking on native-sql queries not yet implemented" ) public void testNativeSql() { Session session = openSession(); session.beginTransaction(); SQLQuery qry = session.createSQLQuery( "select * from door" ); qry.addRoot( "door", Door.class ); qry.getLockOptions().setLockMode( LockMode.PESSIMISTIC_WRITE ); qry.setFirstResult( 2 ); qry.setMaxResults( 2 ); @SuppressWarnings("unchecked") List results = qry.list(); assertEquals( 2, results.size() ); for ( Object door : results ) { assertEquals( LockMode.PESSIMISTIC_WRITE, session.getCurrentLockMode( door ) ); } session.getTransaction().commit(); session.close(); }
gavin = emp.getEmployee(); assertEquals( "GAVIN" , gavin.getName() ); assertEquals( LockMode.UPGRADE , s.getCurrentLockMode( gavin )); emp.setEndDate( new Date() ); Employment emp3 = new Employment( gavin, jboss, "US" );
assertTrue( s.contains(c3) ); assertTrue(loaded==c3); assertTrue( s.getCurrentLockMode(c3)==LockMode.NONE ); assertTrue( s.getCurrentLockMode( c ) == LockMode.UPGRADE ); s.flush(); s.getTransaction().commit();
/** * Determine the current lock mode of the given object. * * @param object a persistent instance * @return the current lock mode */ public LockMode getCurrentLockMode(Object object) { return getSession().getCurrentLockMode(object); }
public LockMode getCurrentLockMode(Object paramObject) throws HibernateException { return delegate.getCurrentLockMode(paramObject); }
@Override public LockMode getCurrentLockMode(Object object) { return delegate.getCurrentLockMode(object); }
@Override public LockMode getLockMode(final Object object) { return LockModeAdapter.adapt(session.getCurrentLockMode(object)); }
@Override public LockMode getCurrentLockMode(final Object object) { return getWrappedSession().getCurrentLockMode(object); }
@Override public LockMode getCurrentLockMode(final Object object) throws HibernateException { try { return LockModeAdapter.adapt(session.getCurrentLockMode(object)); } catch (final PersistenceException ex) { throw HibernateExceptionAdapter.adapt(ex); } }
/** {@inheritDoc} * */ public LockMode getCurrentLockMode(final Object object) { try { return getDelegate().getCurrentLockMode(object); } catch (HibernateException ex) { throw handleException(ex); } }
/** {@inheritDoc} * */ public LockMode getCurrentLockMode(final Object object) { try { return getDelegate().getCurrentLockMode(object); } catch (HibernateException ex) { throw handleException(ex); } }
public LockModeType getLockMode(Object entity) { if ( !contains( entity ) ) { throw new IllegalArgumentException( "entity not in the persistence context" ); } return getLockModeType( getSession().getCurrentLockMode( entity ) ); }