/** * Sets the lock mode for the select statement. * * @param lockMode The lock mode. */ public void setLockMode(LockMode lockMode) { this.lockOptions.setLockMode( lockMode ); }
@Override public LockRequest setLockMode(LockMode lockMode) { lockOptions.setLockMode( lockMode ); return this; }
public SimpleSelect setLockMode(LockMode lockMode) { this.lockOptions.setLockMode( lockMode ); return this; }
public void setLockMode(LockMode lockMode) { this.lockOptions.setLockMode(lockMode); }
/** * Set the lock mode * @param lockMode * @return this object * @deprecated Instead use setLockOptions */ @Deprecated public Select setLockMode(LockMode lockMode) { lockOptions.setLockMode(lockMode); return this; }
public RefreshEvent(Object object, LockMode lockMode, EventSource source) { this(object, source); if (lockMode == null) { throw new IllegalArgumentException("Attempt to generate refresh event with null lock mode"); } this.lockOptions.setLockMode(lockMode); }
/** * Set lock mode * * @param lockMode The {@link LockMode} used for this query. * * @return this object * * @deprecated Instead use setLockOptions */ @Deprecated public AuditQuery setLockMode(LockMode lockMode) { lockOptions.setLockMode( lockMode ); return this; }
public LockEvent(Object object, LockMode lockMode, EventSource source) { super(source); this.object = object; this.lockOptions = new LockOptions().setLockMode(lockMode); }
protected boolean applyHibernateLockModeHint(LockMode lockMode) { getLockOptions().setLockMode( lockMode ); return true; }
public void setLockMode(LockMode lockMode) { if ( lockMode != lockOptions.getLockMode() ) { writingOnLockOptions(); this.lockOptions.setLockMode( lockMode ); } }
/** * Load an instance using either the <tt>forUpdateLoader</tt> or the outer joining <tt>loader</tt>, * depending upon the value of the <tt>lock</tt> parameter */ public Object load(Serializable id, Object optionalObject, LockMode lockMode, SharedSessionContractImplementor session) { return load( id, optionalObject, new LockOptions().setLockMode( lockMode ), session ); }
protected boolean applyLockModeTypeHint(LockModeType lockModeType) { getLockOptions().setLockMode( LockModeTypeHelper.getLockMode( lockModeType ) ); return true; }
@Override public String getForUpdateString(final String aliases, final LockOptions lockOptions) { LockMode lockMode = lockOptions.findGreatestLockMode(); lockOptions.setLockMode( lockMode ); // not sure why this is sometimes empty if ( aliases == null || aliases.isEmpty() ) { return getForUpdateString( lockOptions ); } return getForUpdateString( aliases, lockMode, lockOptions.getTimeOut() ); }
@Override @SuppressWarnings("unchecked") public QueryImplementor setLockMode(LockModeType lockModeType) { getProducer().checkOpen(); if ( !LockModeType.NONE.equals( lockModeType ) ) { if ( !isSelect() ) { throw new IllegalStateException( "Illegal attempt to set lock mode on a non-SELECT query" ); } } lockOptions.setLockMode( LockModeTypeHelper.getLockMode( lockModeType ) ); return this; }
@Override public LockOptions getLockRequest(LockModeType lockModeType, Map<String, Object> properties) { LockOptions lockOptions = new LockOptions(); LockOptions.copy( this.lockOptions, lockOptions ); lockOptions.setLockMode( LockModeTypeHelper.getLockMode( lockModeType ) ); if ( properties != null ) { setLockOptions( properties, lockOptions ); } return lockOptions; }
public EntityJoinWalker( OuterJoinLoadable persister, String[] uniqueKey, int batchSize, LockMode lockMode, final SessionFactoryImplementor factory, LoadQueryInfluencers loadQueryInfluencers) throws MappingException { super( persister, factory, loadQueryInfluencers ); this.lockOptions.setLockMode(lockMode); StringBuilder whereCondition = whereString( getAlias(), uniqueKey, batchSize ) //include the discriminator and class-level where, but not filters .append( persister.filterFragment( getAlias(), Collections.EMPTY_MAP ) ); AssociationInitCallbackImpl callback = new AssociationInitCallbackImpl( factory ); initAll( whereCondition.toString(), "", lockOptions, callback ); this.compositeKeyManyToOneTargetIndices = callback.resolve(); }
/** * Perform a shallow copy. * * @param source Source for the copy (copied from) * @param destination Destination for the copy (copied to) * * @return destination */ public static LockOptions copy(LockOptions source, LockOptions destination) { destination.setLockMode( source.getLockMode() ); destination.setScope( source.getScope() ); destination.setTimeOut( source.getTimeOut() ); if ( source.aliasSpecificLockModes != null ) { destination.aliasSpecificLockModes = new HashMap<String,LockMode>( source.aliasSpecificLockModes ); } destination.setFollowOnLocking( source.getFollowOnLocking() ); return destination; } }
@Override @SuppressWarnings("unchecked") public QueryImplementor setLockOptions(LockOptions lockOptions) { this.lockOptions.setLockMode( lockOptions.getLockMode() ); this.lockOptions.setScope( lockOptions.getScope() ); this.lockOptions.setTimeOut( lockOptions.getTimeOut() ); this.lockOptions.setFollowOnLocking( lockOptions.getFollowOnLocking() ); return this; }
@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(); }
@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(); }