protected DataType toDataType(String hibernateType, Integer sqlTypeCode) throws DatabaseException { Matcher matcher = pattern.matcher(hibernateType); if (!matcher.matches()) { return null; } DataType dataType = new DataType(matcher.group(1)); if (matcher.group(3).isEmpty()) { if (!matcher.group(2).isEmpty()) dataType.setColumnSize(Integer.parseInt(matcher.group(2))); } else { dataType.setColumnSize(Integer.parseInt(matcher.group(2))); dataType.setDecimalDigits(Integer.parseInt(matcher.group(3))); } String extra = StringUtils.trimToNull(matcher.group(4)); if (extra != null) { if (extra.equalsIgnoreCase("char")) { dataType.setColumnSizeUnit(DataType.ColumnSizeUnit.CHAR); } } dataType.setDataTypeId(sqlTypeCode); return dataType; }
pkColumn.setName((String) pkColumnName.get(tableGenerator)); DataType pkDataType = new DataType(PK_DATA_TYPE); pkDataType.setColumnSize(keySize.getInt(tableGenerator)); pkColumn.setType(pkDataType); pkColumn.setCertainDataType(false);
protected DataType toDataType(String hibernateType, Integer sqlTypeCode) throws DatabaseException { Matcher matcher = pattern.matcher(hibernateType); if (!matcher.matches()) { return null; } DataType dataType = new DataType(matcher.group(1)); if (matcher.group(3).isEmpty()) { if (!matcher.group(2).isEmpty()) { dataType.setColumnSize(Integer.parseInt(matcher.group(2))); } } else { dataType.setColumnSize(Integer.parseInt(matcher.group(2))); dataType.setDecimalDigits(Integer.parseInt(matcher.group(3))); } String extra = StringUtils.trimToNull(matcher.group(4)); if (extra != null) { if (extra.equalsIgnoreCase("char")) { dataType.setColumnSizeUnit(DataType.ColumnSizeUnit.CHAR); } } dataType.setDataTypeId(sqlTypeCode); return dataType; }
@Override public Table snapshot(IdentifierGenerator ig) { TableGenerator tableGenerator = (TableGenerator) ig; Table table = new Table().setName(tableGenerator.getTableName()); Column pkColumn = new Column(); pkColumn.setName(tableGenerator.getSegmentColumnName()); DataType pkDataType = new DataType(PK_DATA_TYPE); pkDataType.setColumnSize(tableGenerator.getSegmentValueLength()); pkColumn.setType(pkDataType); pkColumn.setCertainDataType(false); pkColumn.setRelation(table); table.getColumns().add(pkColumn); PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setName(tableGenerator.getTableName() + "PK"); primaryKey.addColumn(0, new Column(pkColumn.getName()).setRelation(table)); primaryKey.setTable(table); table.setPrimaryKey(primaryKey); Column valueColumn = new Column(); valueColumn.setName(tableGenerator.getValueColumnName()); valueColumn.setType(new DataType(VALUE_DATA_TYPE)); valueColumn.setNullable(false); valueColumn.setCertainDataType(false); valueColumn.setRelation(table); table.getColumns().add(valueColumn); return table; }