在从hibernate 3.6迁移到4.3的过程中,生成的创建脚本失败,因为联接列的列长度不正确。
i覆盖TableBinder类,更改
while ( mappedByColumns.hasNext() ) {
Column column = (Column) mappedByColumns.next();
columns[0].overrideFromReferencedColumnIfNecessary( column );
columns[0].linkValueUsingAColumnCopy( column, value );
}
至->
while ( mappedByColumns.hasNext() ) {
Column column = (Column) mappedByColumns.next();
int length = column.getLength();
if (columns[0].getMappingColumn().getLength()!=255)
column.setLength(columns[0].getMappingColumn().getLength());
columns[0].overrideFromReferencedColumnIfNecessary( column );
columns[0].linkValueUsingAColumnCopy( column, value );
}
这不是一个完美的解决方案,但它对我来说是完全有效的