private static Dialect determineDialect(MetadataBuildingOptions buildingOptions) { final Dialect dialect = buildingOptions.getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( dialect != null ) { return dialect; } // Use H2 dialect as default return new H2Dialect(); }
registerColumnType( Types.BOOLEAN, "boolean" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.BINARY, "binary" ); registerColumnType( Types.BIT, "boolean" ); registerColumnType( Types.CHAR, "char($l)" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.LONGVARBINARY, "longvarbinary" ); registerColumnType( Types.LONGVARCHAR, String.format( "varchar(%d)", Integer.MAX_VALUE ) ); registerColumnType( Types.REAL, "real" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "tinyint" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.VARBINARY, "binary($l)" ); registerColumnType( Types.BLOB, "blob" ); registerColumnType( Types.CLOB, "clob" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "acos", new StandardSQLFunction( "acos", StandardBasicTypes.DOUBLE ) ); registerFunction( "asin", new StandardSQLFunction( "asin", StandardBasicTypes.DOUBLE ) ); registerFunction( "atan", new StandardSQLFunction( "atan", StandardBasicTypes.DOUBLE ) );
@Override public JDBCException convert(SQLException sqlException, String message, String sql) { final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException ); if (40001 == errorCode) { // DEADLOCK DETECTED return new LockAcquisitionException(message, sqlException, sql); } if (50200 == errorCode) { // LOCK NOT AVAILABLE return new PessimisticLockException(message, sqlException, sql); } if ( 90006 == errorCode ) { // NULL not allowed for column [90006-145] final String constraintName = getViolatedConstraintNameExtracter().extractConstraintName( sqlException ); return new ConstraintViolationException( message, sqlException, sql, constraintName ); } return null; } };
.locateSequence( Identifier.toIdentifier( "my_db_sequence" ) ); assertThat( sequence, notNullValue() ); final String[] sqlCreateStrings = new H2Dialect().getSequenceExporter().getSqlCreateStrings( sequence, bootModel
registerColumnType( Types.BOOLEAN, "boolean" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.BINARY, "binary" ); registerColumnType( Types.BIT, "boolean" ); registerColumnType( Types.CHAR, "char($l)" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.LONGVARBINARY, "longvarbinary" ); registerColumnType( Types.LONGVARCHAR, String.format( "varchar(%d)", Integer.MAX_VALUE ) ); registerColumnType( Types.REAL, "real" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "tinyint" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.VARBINARY, "binary($l)" ); registerColumnType( Types.BLOB, "blob" ); registerColumnType( Types.CLOB, "clob" ); getDefaultProperties().setProperty( AvailableSettings.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE ); getDefaultProperties().setProperty( AvailableSettings.NON_CONTEXTUAL_LOB_CREATION, "true" );
@Override public String getTypeName(int code, long length, int precision, int scale) throws HibernateException { // to jest String if (code == Types.VARCHAR && length == 255 && precision == 19 && scale == 2) { return "VARCHAR2("+Integer.MAX_VALUE+")"; } return super.getTypeName(code, length, precision, scale); }
@Override public String getTypeName(int code, long length, int precision, int scale) throws HibernateException { String result = super.getTypeName(code, length, precision, scale); if ("longvarchar".equals(result)) return "varchar(" + Integer.MAX_VALUE + ")"; return result; }
registerColumnType( Types.BOOLEAN, "boolean" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.BINARY, "binary" ); registerColumnType( Types.BIT, "boolean" ); registerColumnType( Types.CHAR, "char($l)" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.LONGVARBINARY, "longvarbinary" ); registerColumnType( Types.LONGVARCHAR, "longvarchar" ); registerColumnType( Types.REAL, "real" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "tinyint" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.VARBINARY, "binary($l)" ); registerColumnType( Types.BLOB, "blob" ); registerColumnType( Types.CLOB, "clob" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "acos", new StandardSQLFunction( "acos", StandardBasicTypes.DOUBLE ) ); registerFunction( "asin", new StandardSQLFunction( "asin", StandardBasicTypes.DOUBLE ) ); registerFunction( "atan", new StandardSQLFunction( "atan", StandardBasicTypes.DOUBLE ) ); registerFunction( "atan2", new StandardSQLFunction( "atan2", StandardBasicTypes.DOUBLE ) );
public H2DatabasePlatform() { super(new H2Dialect(), "jdbc:h2:<database or connection spec>"); }
@Override public JDBCException convert(SQLException sqlException, String message, String sql) { final int errorCode = JdbcExceptionHelper.extractErrorCode( sqlException ); if (40001 == errorCode) { // DEADLOCK DETECTED return new LockAcquisitionException(message, sqlException, sql); } if (50200 == errorCode) { // LOCK NOT AVAILABLE return new PessimisticLockException(message, sqlException, sql); } if ( 90006 == errorCode ) { // NULL not allowed for column [90006-145] final String constraintName = getViolatedConstraintNameExtracter().extractConstraintName( sqlException ); return new ConstraintViolationException( message, sqlException, sql, constraintName ); } return null; } };
registerColumnType(Types.BOOLEAN, "boolean"); registerColumnType(Types.BIGINT, "bigint"); registerColumnType(Types.BINARY, "binary"); registerColumnType(Types.BIT, "boolean"); registerColumnType(Types.CHAR, "char($l)"); registerColumnType(Types.DATE, "date"); registerColumnType(Types.DECIMAL, "decimal($p,$s)"); registerColumnType(Types.DOUBLE, "double"); registerColumnType(Types.FLOAT, "float"); registerColumnType(Types.INTEGER, "integer"); registerColumnType(Types.LONGVARBINARY, "longvarbinary"); registerColumnType(Types.LONGVARCHAR, "longvarchar"); registerColumnType(Types.REAL, "real"); registerColumnType(Types.SMALLINT, "smallint"); registerColumnType(Types.TINYINT, "tinyint"); registerColumnType(Types.TIME, "time"); registerColumnType(Types.TIMESTAMP, "timestamp"); registerColumnType(Types.VARCHAR, "varchar($l)"); registerColumnType(Types.VARBINARY, "binary($l)"); registerColumnType(Types.NUMERIC, "numeric"); registerColumnType(Types.BLOB, "blob"); registerColumnType(Types.CLOB, "clob"); registerFunction("acos", new StandardSQLFunction("acos", Hibernate.DOUBLE)); registerFunction("asin", new StandardSQLFunction("asin", Hibernate.DOUBLE)); registerFunction("atan", new StandardSQLFunction("atan", Hibernate.DOUBLE)); registerFunction("atan2", new StandardSQLFunction("atan2", Hibernate.DOUBLE)); registerFunction("bitand", new StandardSQLFunction("bitand", Hibernate.INTEGER)); registerFunction("bitor", new StandardSQLFunction("bitor", Hibernate.INTEGER));
private static Dialect determineDialect(MetadataBuildingOptions buildingOptions) { final Dialect dialect = buildingOptions.getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( dialect != null ) { return dialect; } // Use H2 dialect as default return new H2Dialect(); }
registerColumnType( Types.BOOLEAN, "boolean" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.BINARY, "binary" ); registerColumnType( Types.BIT, "boolean" ); registerColumnType( Types.CHAR, "char($l)" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.LONGVARBINARY, "longvarbinary" ); registerColumnType( Types.LONGVARCHAR, "longvarchar" ); registerColumnType( Types.REAL, "real" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "tinyint" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.VARBINARY, "binary($l)" ); registerColumnType( Types.BLOB, "blob" ); registerColumnType( Types.CLOB, "clob" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "acos", new StandardSQLFunction( "acos", StandardBasicTypes.DOUBLE ) ); registerFunction( "asin", new StandardSQLFunction( "asin", StandardBasicTypes.DOUBLE ) ); registerFunction( "atan", new StandardSQLFunction( "atan", StandardBasicTypes.DOUBLE ) ); registerFunction( "atan2", new StandardSQLFunction( "atan2", StandardBasicTypes.DOUBLE ) );