Skip to content

Commit c68c0cc

Browse files
committed
Fix Envers issues with wrong CockroachDB LOB JdbcTypes
1 parent a378f46 commit c68c0cc

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CockroachLegacyDialect.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,11 @@
7272
import org.hibernate.sql.exec.spi.JdbcOperation;
7373
import org.hibernate.tool.schema.extract.spi.ColumnTypeInformation;
7474
import org.hibernate.type.JavaObjectType;
75+
import org.hibernate.type.descriptor.jdbc.BlobJdbcType;
76+
import org.hibernate.type.descriptor.jdbc.ClobJdbcType;
7577
import org.hibernate.type.descriptor.jdbc.JdbcType;
78+
import org.hibernate.type.descriptor.jdbc.NClobJdbcType;
7679
import org.hibernate.type.descriptor.jdbc.ObjectNullAsBinaryTypeJdbcType;
77-
import org.hibernate.type.descriptor.jdbc.VarbinaryJdbcType;
78-
import org.hibernate.type.descriptor.jdbc.VarcharJdbcType;
7980
import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
8081
import org.hibernate.type.descriptor.sql.internal.DdlTypeImpl;
8182
import org.hibernate.type.descriptor.sql.internal.NamedNativeEnumDdlTypeImpl;
@@ -417,9 +418,9 @@ protected void contributeCockroachTypes(TypeContributions typeContributions, Ser
417418
}
418419

419420
// Force Blob binding to byte[] for CockroachDB
420-
jdbcTypeRegistry.addDescriptor( Types.BLOB, VarbinaryJdbcType.INSTANCE );
421-
jdbcTypeRegistry.addDescriptor( Types.CLOB, VarcharJdbcType.INSTANCE );
422-
jdbcTypeRegistry.addDescriptor( Types.NCLOB, VarcharJdbcType.INSTANCE );
421+
jdbcTypeRegistry.addDescriptor( Types.BLOB, BlobJdbcType.MATERIALIZED );
422+
jdbcTypeRegistry.addDescriptor( Types.CLOB, ClobJdbcType.MATERIALIZED );
423+
jdbcTypeRegistry.addDescriptor( Types.NCLOB, NClobJdbcType.MATERIALIZED );
423424

424425
// The next two contributions are the same as for Postgresql
425426
typeContributions.contributeJdbcType( ObjectNullAsBinaryTypeJdbcType.INSTANCE );

hibernate-core/src/main/java/org/hibernate/dialect/CockroachDialect.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,12 @@
6262
import org.hibernate.sql.exec.spi.JdbcOperation;
6363
import org.hibernate.tool.schema.extract.spi.ColumnTypeInformation;
6464
import org.hibernate.type.JavaObjectType;
65+
import org.hibernate.type.descriptor.jdbc.BlobJdbcType;
66+
import org.hibernate.type.descriptor.jdbc.ClobJdbcType;
6567
import org.hibernate.type.descriptor.jdbc.JdbcType;
68+
import org.hibernate.type.descriptor.jdbc.NClobJdbcType;
6669
import org.hibernate.type.descriptor.jdbc.ObjectNullAsBinaryTypeJdbcType;
6770
import org.hibernate.type.descriptor.jdbc.UUIDJdbcType;
68-
import org.hibernate.type.descriptor.jdbc.VarbinaryJdbcType;
69-
import org.hibernate.type.descriptor.jdbc.VarcharJdbcType;
7071
import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
7172
import org.hibernate.type.descriptor.sql.internal.DdlTypeImpl;
7273
import org.hibernate.type.descriptor.sql.internal.NamedNativeEnumDdlTypeImpl;
@@ -377,9 +378,9 @@ protected void contributeCockroachTypes(TypeContributions typeContributions, Ser
377378
}
378379

379380
// Force Blob binding to byte[] for CockroachDB
380-
jdbcTypeRegistry.addDescriptor( Types.BLOB, VarbinaryJdbcType.INSTANCE );
381-
jdbcTypeRegistry.addDescriptor( Types.CLOB, VarcharJdbcType.INSTANCE );
382-
jdbcTypeRegistry.addDescriptor( Types.NCLOB, VarcharJdbcType.INSTANCE );
381+
jdbcTypeRegistry.addDescriptor( Types.BLOB, BlobJdbcType.MATERIALIZED );
382+
jdbcTypeRegistry.addDescriptor( Types.CLOB, ClobJdbcType.MATERIALIZED );
383+
jdbcTypeRegistry.addDescriptor( Types.NCLOB, NClobJdbcType.MATERIALIZED );
383384

384385
// The next two contributions are the same as for Postgresql
385386
typeContributions.contributeJdbcType( ObjectNullAsBinaryTypeJdbcType.INSTANCE );

0 commit comments

Comments
 (0)