本文整理汇总了Java中org.hibernate.PessimisticLockException类的典型用法代码示例。如果您正苦于以下问题:Java PessimisticLockException类的具体用法?Java PessimisticLockException怎么用?Java PessimisticLockException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PessimisticLockException类属于org.hibernate包,在下文中一共展示了PessimisticLockException类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildSQLExceptionConversionDelegate
import org.hibernate.PessimisticLockException; //导入依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
return new SQLExceptionConversionDelegate() {
@Override
public JDBCException convert(SQLException sqlException, String message, String sql) {
final String sqlState = JdbcExceptionHelper.extractSqlState( sqlException );
if ( "40P01".equals( sqlState ) ) {
// DEADLOCK DETECTED
return new LockAcquisitionException( message, sqlException, sql );
}
if ( "55P03".equals( sqlState ) ) {
// LOCK NOT AVAILABLE
return new PessimisticLockException( message, sqlException, sql );
}
// returning null allows other delegates to operate
return null;
}
};
}
示例2: isLockingException
import org.hibernate.PessimisticLockException; //导入依赖的package包/类
private static boolean isLockingException(final Throwable t, final boolean recurse) {
if (t instanceof LockingException || t instanceof LockAcquisitionException || t instanceof PessimisticLockException) {
return true;
}
if (t instanceof SQLException) {
final SQLException e = (SQLException) t;
return e.getErrorCode() == ER_LOCK_WAIT_TIMEOUT || ST_LOCK.equals(e.getSQLState());
}
if (recurse) {
for (final Throwable thr : ExceptionUtils.getThrowables(t)) {
if (isLockingException(thr, false)) {
return true;
}
}
}
return false;
}
示例3: isTransient
import org.hibernate.PessimisticLockException; //导入依赖的package包/类
@Override
public boolean isTransient(Exception e) {
if (e instanceof LockAcquisitionException || e instanceof PessimisticLockException || e instanceof JDBCConnectionException) {
return true;
}
if (e instanceof GenericJDBCException) {
JDBCException se = (JDBCException) e;
return super.isTransient(se.getSQLException());
}
return false;
}
示例4: convert
import org.hibernate.PessimisticLockException; //导入依赖的package包/类
@Override
public JDBCException convert(SQLException sqlException, String message, String sql) {
final String sqlState = JdbcExceptionHelper.extractSqlState( sqlException );
final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );
if ( sqlState != null ) {
String sqlStateClassCode = JdbcExceptionHelper.determineSqlStateClassCode( sqlState );
if ( sqlStateClassCode != null ) {
if ( SQL_GRAMMAR_CATEGORIES.contains( sqlStateClassCode ) ) {
return new SQLGrammarException( message, sqlException, sql );
}
else if ( INTEGRITY_VIOLATION_CATEGORIES.contains( sqlStateClassCode ) ) {
final String constraintName = getConversionContext()
.getViolatedConstraintNameExtracter()
.extractConstraintName( sqlException );
return new ConstraintViolationException( message, sqlException, sql, constraintName );
}
else if ( CONNECTION_CATEGORIES.contains( sqlStateClassCode ) ) {
return new JDBCConnectionException( message, sqlException, sql );
}
else if ( DATA_CATEGORIES.contains( sqlStateClassCode ) ) {
return new DataException( message, sqlException, sql );
}
}
if ( "40001".equals( sqlState ) ) {
return new LockAcquisitionException( message, sqlException, sql );
}
if ( "40XL1".equals( sqlState ) || "40XL2".equals( sqlState )) {
// Derby "A lock could not be obtained within the time requested."
return new PessimisticLockException( message, sqlException, sql );
}
// MySQL Query execution was interrupted
if ( "70100".equals( sqlState ) ||
// Oracle user requested cancel of current operation
( "72000".equals( sqlState ) && errorCode == 1013 ) ) {
throw new QueryTimeoutException( message, sqlException, sql );
}
}
return null;
}