当前位置: 首页>>代码示例>>Java>>正文


Java JdbcExceptionHelper.extractErrorCode方法代码示例

本文整理汇总了Java中org.hibernate.internal.util.JdbcExceptionHelper.extractErrorCode方法的典型用法代码示例。如果您正苦于以下问题:Java JdbcExceptionHelper.extractErrorCode方法的具体用法?Java JdbcExceptionHelper.extractErrorCode怎么用?Java JdbcExceptionHelper.extractErrorCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.hibernate.internal.util.JdbcExceptionHelper的用法示例。


在下文中一共展示了JdbcExceptionHelper.extractErrorCode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: convert

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
/**
 * Convert the given SQLException into Hibernate's JDBCException hierarchy.
 *
 * @param sqlException The SQLException to be converted.
 * @param message	  An optional error message.
 * @param sql		  Optionally, the sql being performed when the exception occurred.
 * @return The resulting JDBCException; returns null if it could not be converted.
 */
@Override
public JDBCException convert(SQLException sqlException, String message, String sql) {
	String sqlStateClassCode = JdbcExceptionHelper.extractSqlStateClassCode( sqlException );
	if ( sqlStateClassCode != null ) {
		Integer errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );
		if ( INTEGRITY_VIOLATION_CATEGORIES.contains( errorCode ) ) {
			String constraintName =
					getConversionContext()
							.getViolatedConstraintNameExtracter()
							.extractConstraintName( sqlException );
			return new ConstraintViolationException( message, sqlException, sql, constraintName );
		}
		else if ( DATA_CATEGORIES.contains( sqlStateClassCode ) ) {
			return new DataException( message, sqlException, sql );
		}
	}
	return null; // allow other delegates the chance to look
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:27,代码来源:CacheSQLExceptionConversionDelegate.java

示例2: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			final String sqlState = JdbcExceptionHelper.extractSqlState( sqlException );
			final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );
			if("JZ0TO".equals( sqlState ) || "JZ006".equals( sqlState )){
				throw new LockTimeoutException( message, sqlException, sql );
			}
			if ( 515 == errorCode && "ZZZZZ".equals( sqlState ) ) {
				// Attempt to insert NULL value into column; column does not allow nulls.
				final String constraintName = getViolatedConstraintNameExtracter().extractConstraintName( sqlException );
				return new ConstraintViolationException( message, sqlException, sql, constraintName );
			}
			return null;
		}
	};
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:20,代码来源:SybaseASE157Dialect.java

示例3: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			final String sqlState = JdbcExceptionHelper.extractSqlState( sqlException );
			final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );
			if ( "HY008".equals( sqlState ) ) {
				throw new QueryTimeoutException( message, sqlException, sql );
			}
			if (1222 == errorCode ) {
				throw new LockTimeoutException( message, sqlException, sql );
			}
			return null;
		}
	};
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:SQLServer2005Dialect.java

示例4: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			final int errorCode = JdbcExceptionHelper.extractErrorCode(sqlException);
			if (errorCode == SQLITE_TOOBIG || errorCode == SQLITE_MISMATCH) {
				return new DataException(message, sqlException, sql);
			} else if (errorCode == SQLITE_BUSY || errorCode == SQLITE_LOCKED) {
				return new LockAcquisitionException(message, sqlException, sql);
			} else if ((errorCode >= SQLITE_IOERR && errorCode <= SQLITE_PROTOCOL) || errorCode == SQLITE_NOTADB) {
				return new JDBCConnectionException(message, sqlException, sql);
			}

			// returning null allows other delegates to operate
			return null;
		}
	};
}
 
开发者ID:shilongdai,项目名称:vsDiaryWriter,代码行数:20,代码来源:SQLiteDialect.java

示例5: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			final int errorCode = JdbcExceptionHelper.extractErrorCode(sqlException);
			if (errorCode == SQLITE_TOOBIG || errorCode == SQLITE_MISMATCH) {
				return new DataException(message, sqlException, sql);
			} else if (errorCode == SQLITE_BUSY || errorCode == SQLITE_LOCKED) {
				return new LockAcquisitionException(message, sqlException, sql);
			} else if ((errorCode >= SQLITE_IOERR && errorCode <= SQLITE_PROTOCOL) || errorCode == SQLITE_NOTADB) {
				return new JDBCConnectionException(message, sqlException, sql);
			}
			return null;
		}
	};
}
 
开发者ID:kb2623,项目名称:spletne-seje,代码行数:18,代码来源:SQLiteDialect.java

示例6: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
  return new SQLExceptionConversionDelegate() {
    @Override
    public JDBCException convert(SQLException sqlException, String message, String sql) {
      final int errorCode = JdbcExceptionHelper.extractErrorCode(sqlException);
      if (errorCode == SQLITE_TOOBIG || errorCode == SQLITE_MISMATCH) {
        return new DataException(message, sqlException, sql);
      } else if (errorCode == SQLITE_BUSY || errorCode == SQLITE_LOCKED) {
        return new LockAcquisitionException(message, sqlException, sql);
      } else if ((errorCode >= SQLITE_IOERR && errorCode <= SQLITE_PROTOCOL) || errorCode == SQLITE_NOTADB) {
        return new JDBCConnectionException(message, sqlException, sql);
      }

      // returning null allows other delegates to operate
      return null;
    }
  };
}
 
开发者ID:ntenhoeve,项目名称:Introspect-Framework,代码行数:20,代码来源:SQLiteDialect.java

示例7: convert

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public JDBCException convert(SQLException sqlException, String message, String sql) {
    final int errorCode = JdbcExceptionHelper.extractErrorCode(sqlException);
    if (errorCode == SQLITE_CONSTRAINT) {
        final String constraintName = EXTRACTER.extractConstraintName(sqlException);
        return new ConstraintViolationException(message, sqlException, sql, constraintName);
    } else if (errorCode == SQLITE_TOO_BIG || errorCode == SQLITE_MISMATCH) {
        return new DataException(message, sqlException, sql);
    } else if (errorCode == SQLITE_BUSY || errorCode == SQLITE_LOCKED) {
        return new LockAcquisitionException(message, sqlException, sql);
    } else if ((errorCode >= SQLITE_IO_ERR && errorCode <= SQLITE_PROTOCOL) || errorCode == SQLITE_NOT_ADB) {
        return new JDBCConnectionException(message, sqlException, sql);
    }
    return new GenericJDBCException(message, sqlException, sql);
}
 
开发者ID:ZsoltFabok,项目名称:sqlite-dialect,代码行数:16,代码来源:SQLiteSQLExceptionConversionDelegate.java

示例8: extractConstraintName

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public String extractConstraintName(SQLException sqle) {
	String constraintName = null;

	final int errorCode = JdbcExceptionHelper.extractErrorCode( sqle );

	if ( errorCode == -8 ) {
		constraintName = extractUsingTemplate(
				"Integrity constraint violation ", " table:", sqle.getMessage()
		);
	}
	else if ( errorCode == -9 ) {
		constraintName = extractUsingTemplate(
				"Violation of unique index: ", " in statement [", sqle.getMessage()
		);
	}
	else if ( errorCode == -104 ) {
		constraintName = extractUsingTemplate(
				"Unique constraint violation: ", " in statement [", sqle.getMessage()
		);
	}
	else if ( errorCode == -177 ) {
		constraintName = extractUsingTemplate(
				"Integrity constraint violation - no parent ", " table:",
				sqle.getMessage()
		);
	}
	return constraintName;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:30,代码来源:HSQLDialect.java

示例9: extractConstraintName

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
/**
 * Extract the name of the violated constraint from the given SQLException.
 *
 * @param sqle The exception that was the result of the constraint violation.
 * @return The extracted constraint name.
 */
public String extractConstraintName(SQLException sqle) {
	final int errorCode = JdbcExceptionHelper.extractErrorCode( sqle );
	if ( errorCode == 1 || errorCode == 2291 || errorCode == 2292 ) {
		return extractUsingTemplate( "(", ")", sqle.getMessage() );
	}
	else if ( errorCode == 1400 ) {
		// simple nullability constraint
		return null;
	}
	else {
		return null;
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:20,代码来源:Oracle8iDialect.java

示例10: extractConstraintName

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public String extractConstraintName(SQLException sqle) {
	String constraintName = null;
	final int errorCode = JdbcExceptionHelper.extractErrorCode( sqle );

	if ( errorCode == -268 ) {
		constraintName = extractUsingTemplate( "Unique constraint (", ") violated.", sqle.getMessage() );
	}
	else if ( errorCode == -691 ) {
		constraintName = extractUsingTemplate(
				"Missing key in referenced table for referential constraint (",
				").",
				sqle.getMessage()
		);
	}
	else if ( errorCode == -692 ) {
		constraintName = extractUsingTemplate(
				"Key value for constraint (",
				") is still being referenced.",
				sqle.getMessage()
		);
	}

	if ( constraintName != null ) {
		// strip table-owner because Informix always returns constraint names as "<table-owner>.<constraint-name>"
		final int i = constraintName.indexOf( '.' );
		if ( i != -1 ) {
			constraintName = constraintName.substring( i + 1 );
		}
	}

	return constraintName;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:34,代码来源:InformixDialect.java

示例11: extractConstraintName

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public String extractConstraintName(SQLException sqle) {
	final int errorCode = JdbcExceptionHelper.extractErrorCode( sqle );
	if ( errorCode == 1 || errorCode == 2291 || errorCode == 2292 ) {
		return extractUsingTemplate( "constraint (", ") violated", sqle.getMessage() );
	}
	else if ( errorCode == 1400 ) {
		// simple nullability constraint
		return null;
	}
	else {
		return null;
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:15,代码来源:Oracle9Dialect.java

示例12: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			final String sqlState = JdbcExceptionHelper.extractSqlState( sqlException );
			final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );

			if( -952 == errorCode && "57014".equals( sqlState )){
				throw new LockTimeoutException( message, sqlException, sql );
			}
			return null;
		}
	};
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:16,代码来源:DB2Dialect.java

示例13: doExtractConstraintName

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
protected String doExtractConstraintName(SQLException sqle) throws NumberFormatException {
	final int errorCode = JdbcExceptionHelper.extractErrorCode(sqle);
	if (errorCode == SQLITE_CONSTRAINT) {
		return extractUsingTemplate("constraint ", " failed", sqle.getMessage());
	}
	return null;
}
 
开发者ID:shilongdai,项目名称:vsDiaryWriter,代码行数:9,代码来源:SQLiteDialect.java

示例14: convert

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的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;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:46,代码来源:SQLStateConversionDelegate.java

示例15: buildSQLExceptionConversionDelegate

import org.hibernate.internal.util.JdbcExceptionHelper; //导入方法依赖的package包/类
@Override
public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate() {
	return new SQLExceptionConversionDelegate() {
		@Override
		public JDBCException convert(SQLException sqlException, String message, String sql) {
			// interpreting Oracle exceptions is much much more precise based on their specific vendor codes.

			final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException );


			// lock timeouts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			if ( errorCode == 30006 ) {
				// ORA-30006: resource busy; acquire with WAIT timeout expired
				throw new LockTimeoutException( message, sqlException, sql );
			}
			else if ( errorCode == 54 ) {
				// ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
				throw new LockTimeoutException( message, sqlException, sql );
			}
			else if ( 4021 == errorCode ) {
				// ORA-04021 timeout occurred while waiting to lock object
				throw new LockTimeoutException( message, sqlException, sql );
			}


			// deadlocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			if ( 60 == errorCode ) {
				// ORA-00060: deadlock detected while waiting for resource
				return new LockAcquisitionException( message, sqlException, sql );
			}
			else if ( 4020 == errorCode ) {
				// ORA-04020 deadlock detected while trying to lock object
				return new LockAcquisitionException( message, sqlException, sql );
			}


			// query cancelled ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			if ( 1013 == errorCode ) {
				// ORA-01013: user requested cancel of current operation
				throw new QueryTimeoutException(  message, sqlException, sql );
			}


			// data integrity violation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			if ( 1407 == errorCode ) {
				// ORA-01407: cannot update column to NULL
				final String constraintName = getViolatedConstraintNameExtracter().extractConstraintName( sqlException );
				return new ConstraintViolationException( message, sqlException, sql, constraintName );
			}

			return null;
		}
	};
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:59,代码来源:Oracle8iDialect.java


注:本文中的org.hibernate.internal.util.JdbcExceptionHelper.extractErrorCode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。