diff --git a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacyDialect.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacyDialect.java index f8541dc97d..11c9f7d76b 100644 --- a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacyDialect.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacyDialect.java @@ -127,7 +127,13 @@ public class SQLServerLegacyDialect extends AbstractTransactSQLDialect { case BLOB: case CLOB: case NCLOB: - return Size.length( getDefaultLobLength() ); + return super.resolveSize( + jdbcType, + javaType, + precision, + scale, + length == null ? getDefaultLobLength() : length + ); default: return super.resolveSize( jdbcType, javaType, precision, scale, length ); } diff --git a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseLegacyDialect.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseLegacyDialect.java index ba3469b2d0..1ee36ad947 100644 --- a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseLegacyDialect.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseLegacyDialect.java @@ -104,7 +104,13 @@ public class SybaseLegacyDialect extends AbstractTransactSQLDialect { case Types.NCLOB: case Types.CLOB: case Types.BLOB: - return Size.length( getDefaultLobLength() ); + return super.resolveSize( + jdbcType, + javaType, + precision, + scale, + length == null ? getDefaultLobLength() : length + ); case Types.FLOAT: // Sybase ASE allows FLOAT with a precision up to 48 if ( precision != null ) { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerDialect.java index a2682c018f..9d196945a1 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerDialect.java @@ -148,7 +148,13 @@ public class SQLServerDialect extends AbstractTransactSQLDialect { case BLOB: case CLOB: case NCLOB: - return Size.length( getDefaultLobLength() ); + return super.resolveSize( + jdbcType, + javaType, + precision, + scale, + length == null ? getDefaultLobLength() : length + ); default: return super.resolveSize( jdbcType, javaType, precision, scale, length ); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/SybaseASEDialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/SybaseASEDialect.java index 001c0499b3..d71047ec29 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/SybaseASEDialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/SybaseASEDialect.java @@ -73,7 +73,13 @@ public class SybaseASEDialect extends SybaseDialect { case Types.NCLOB: case Types.CLOB: case Types.BLOB: - return Size.length( getDefaultLobLength() ); + return super.resolveSize( + jdbcType, + javaType, + precision, + scale, + length == null ? getDefaultLobLength() : length + ); case Types.FLOAT: // Sybase ASE allows FLOAT with a precision up to 48 if ( precision != null ) {