类org.hibernate.OptimisticLockException源码实例Demo

下面列出了怎么用org.hibernate.OptimisticLockException的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: EntityVerifyVersionProcess.java
@Override
public void doBeforeTransactionCompletion(SessionImplementor session) {
	final EntityPersister persister = entry.getPersister();

	if ( !entry.isExistsInDatabase() ) {
		// HHH-9419: We cannot check for a version of an entry we ourselves deleted
		return;
	}

	final Object latestVersion = persister.getCurrentVersion( entry.getId(), session );
	if ( !entry.getVersion().equals( latestVersion ) ) {
		throw new OptimisticLockException(
				object,
				"Newer version [" + latestVersion +
						"] of entity [" + MessageHelper.infoString( entry.getEntityName(), entry.getId() ) +
						"] found in database"
		);
	}
}
 
源代码2 项目: lams   文件: OptimisticLockingStrategy.java
@Override
public void lock(Serializable id, Object version, Object object, int timeout, SharedSessionContractImplementor session) {
	if ( !lockable.isVersioned() ) {
		throw new OptimisticLockException( object, "[" + lockMode + "] not supported for non-versioned entities [" + lockable.getEntityName() + "]" );
	}
	final EntityEntry entry = session.getPersistenceContext().getEntry( object );
	// Register the EntityVerifyVersionProcess action to run just prior to transaction commit.
	( (EventSource) session ).getActionQueue().registerProcess( new EntityVerifyVersionProcess( object, entry ) );
}
 
public HibernateOptimisticLockingFailureException(OptimisticLockException ex) {
	super(ex.getMessage(), ex);
}
 
public HibernateOptimisticLockingFailureException(OptimisticLockException ex) {
	super(ex.getMessage(), ex);
}
 
 类所在包
 类方法
 同包方法