/** * Get the name of the database type appropriate for casting operations * (via the CAST() SQL function) for the given {@link java.sql.Types} typecode. * * @param code The {@link java.sql.Types} typecode * @return The database type name */ public String getCastTypeName(int code) { return getTypeName( code, Column.DEFAULT_LENGTH, Column.DEFAULT_PRECISION, Column.DEFAULT_SCALE ); }
/** * Get the name of the database type associated with the given * <tt>java.sql.Types</tt> typecode. * * @param code <tt>java.sql.Types</tt> typecode * @param length the length or precision of the column * @param precision the precision of the column * @param scale the scale of the column * * @return the database type name * * @throws HibernateException */ public String getTypeName(int code, int length, int precision, int scale) throws HibernateException { /* * We might want a special case for 19,2. This is very common for money types * and here it is converted to 18,1 */ float f = precision > 0 ? ( float ) scale / ( float ) precision : 0; int p = ( precision > 18 ? 18 : precision ); int s = ( precision > 18 ? ( int ) ( 18.0 * f ) : ( scale > 18 ? 18 : scale ) ); return super.getTypeName( code, length, p, s ); }
/** * Return an expression casting the value to the specified type * * @param value The value to cast * @param jdbcTypeCode The JDBC type code to cast to * @param length The type length * @param precision The type precision * @param scale The type scale * * @return The cast expression */ public String cast(String value, int jdbcTypeCode, int length, int precision, int scale) { if ( jdbcTypeCode == Types.CHAR ) { return "cast(" + value + " as char(" + length + "))"; } else { return "cast(" + value + "as " + getTypeName( jdbcTypeCode, length, precision, scale ) + ")"; } }
@Override public String[] sqlCreateStrings(Dialect dialect) throws HibernateException { return new String[] { dialect.getCreateTableString() + ' ' + renderedTableName + " ( " + segmentColumnName + ' ' + dialect.getTypeName( Types.VARCHAR, segmentValueLength, 0, 0 ) + " not null " + ", " + valueColumnName + ' ' + dialect.getTypeName( Types.BIGINT ) + ", primary key ( " + segmentColumnName + " ) )" + dialect.getTableTypeString() }; }
public String[] sqlCreateStrings(Dialect dialect) throws HibernateException { return new String[] { dialect.getCreateTableString() + ' ' + tableName + " ( " + segmentColumnName + ' ' + dialect.getTypeName( Types.VARCHAR, keySize, 0, 0 ) + ", " + valueColumnName + ' ' + dialect.getTypeName( Types.INTEGER ) + " )" + dialect.getTableTypeString() }; }
@Override public String[] sqlCreateStrings(Dialect dialect) throws HibernateException { return new String[] { dialect.getCreateTableString() + " " + tableNameText + " ( " + valueColumnNameText + " " + dialect.getTypeName( Types.BIGINT ) + " )", "insert into " + tableNameText + " values ( " + initialValue + " )" }; }
public ExportableColumn(Database database, Table table, String name, BasicType type) { this( database, table, name, type, database.getDialect().getTypeName( type.sqlTypes( null )[0] ) ); }
public String getSqlType(Dialect dialect, Mapping mapping) throws HibernateException { if ( sqlType == null ) { sqlType = dialect.getTypeName( getSqlTypeCode( mapping ), getLength(), getPrecision(), getScale() ); } return sqlType; }
@Before public void init() { doInJPA( this::entityManagerFactory, entityManager -> { Session session = entityManager.unwrap( Session.class ); session.doWork( connection -> { try(Statement statement = connection.createStatement(); ) { statement.executeUpdate( String.format( "ALTER TABLE person %s valid %s", getDialect().getAddColumnString(), getDialect().getTypeName( Types.BOOLEAN ))); statement.executeUpdate( String.format( "ALTER TABLE Person_phones %s valid %s", getDialect().getAddColumnString(), getDialect().getTypeName( Types.BOOLEAN ))); } } ); }); }
session .createSQLQuery( "CREATE TABLE children ( parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )" session .createSQLQuery( "CREATE TABLE children_AUD ( REV " + getDialect().getTypeName( Types.INTEGER ) + " NOT NULL" + ", REVEND " + getDialect().getTypeName( Types.INTEGER ) + ", " + revendTimestampColumName + " " + getDialect().getTypeName( Types.TIMESTAMP ) + ", REVTYPE " + getDialect().getTypeName( Types.TINYINT ) + ", parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )"
session .createSQLQuery( "CREATE TABLE children ( parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )" session .createSQLQuery( "CREATE TABLE children_AUD ( REV " + getDialect().getTypeName( Types.INTEGER ) + " NOT NULL" + ", REVEND " + getDialect().getTypeName( Types.INTEGER ) + ", " + revendTimestampColumName + " " + getDialect().getTypeName( Types.TIMESTAMP ) + ", REVTYPE " + getDialect().getTypeName( Types.TINYINT ) + ", parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )"
session.createSQLQuery( "DROP TABLE children" ).executeUpdate(); session.createSQLQuery( "CREATE TABLE children ( parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )" ).executeUpdate(); session.createSQLQuery( "DROP TABLE children_AUD" ).executeUpdate(); session.createSQLQuery( "CREATE TABLE children_AUD ( REV " + getDialect().getTypeName( Types.INTEGER ) + " NOT NULL" + ", REVEND " + getDialect().getTypeName( Types.INTEGER ) + ", REVTYPE " + getDialect().getTypeName( Types.TINYINT ) + ", parent_id " + getDialect().getTypeName( Types.INTEGER ) + ", child1_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + ", child2_id " + getDialect().getTypeName( Types.INTEGER ) + getDialect().getNullColumnString() + " )" ).executeUpdate(); em.getTransaction().commit();
getASTFactory().create( HqlSqlTokenTypes.IDENT, sessionFactoryHelper.getFactory().getDialect().getTypeName( sqlTypes[0] )
segmentColumnName, StringType.INSTANCE, dialect.getTypeName( Types.VARCHAR, segmentValueLength, 0, 0 ) ); segmentColumn.setNullable( false );
segmentColumnName, StringType.INSTANCE, database.getDialect().getTypeName( Types.VARCHAR, keySize, 0, 0 ) ); pkColumn.setNullable( false );
/** * Get the name of the database type appropriate for casting operations * (via the CAST() SQL function) for the given {@link java.sql.Types} typecode. * * @param code The {@link java.sql.Types} typecode * @return The database type name */ public String getCastTypeName(int code) { return getTypeName( code, Column.DEFAULT_LENGTH, Column.DEFAULT_PRECISION, Column.DEFAULT_SCALE ); }
@Override public String getTypeName(int code) throws HibernateException { return delegate.getTypeName(code); }
@Override public String getTypeName(int code, long length, int precision, int scale) throws HibernateException { return delegate.getTypeName(code, length, precision, scale); }
public String[] sqlCreateStrings(Dialect dialect) throws HibernateException { return new String[] { dialect.getCreateTableString() + " " + tableName + " ( " + columnName + " " + dialect.getTypeName(Types.INTEGER) + " )", "insert into " + tableName + " values ( 0 )" }; }
public ExportableColumn(Dialect dialect, MappedTable table, String name, BasicType type) { this( table, name, type, dialect.getTypeName( type.getSqlTypeDescriptor().getJdbcTypeCode() ) ); }