Spring boot 3.1 + Hibernet 6.2.2 + MariaDB 10.6.11 - wrong column type encountered

I’m migrating an application that currently has these versions:

  • org.springframework.boot: 3.0.7
  • org.hibernate.orm: 6.1.6.Final
  • MariaDB 10.6.11

To

  • org.springframework.boot: 3.1.0
  • org.hibernate.orm: 6.2.2.Final

Entity

    @Convert(converter = BooleanByteConverter.class)
    @Column(name = "BL_Visible", nullable = false, columnDefinition = "bit")
    private Boolean visible;

Converter

import jakarta.persistence.AttributeConverter;

public class BooleanByteConverter implements AttributeConverter<Boolean, Byte> {
    @Override
    public Byte convertToDatabaseColumn(Boolean attribute) {
        if (attribute) return 1;
        return 0;
    }
    @Override
    public Boolean convertToEntityAttribute(Byte dbData) {
        return dbData == 1;
    }
}

At https://github.com/hibernate/hibernate-orm/blob/6.2/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/ColumnDefinitions.java#L42

I have these values when debug:

column.getSqlTypeCode(metadata) = -6
jdbcType.getDefaultSqlTypeCode() = 16

Then get error:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [BL_Visible] in table [TB_Account]; found [boolean (Types#BOOLEAN)], but expecting [bit (Types#TINYINT)]
	at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateColumnType(AbstractSchemaValidator.java:165) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateTable(AbstractSchemaValidator.java:152) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.internal.GroupedSchemaValidatorImpl.validateTables(GroupedSchemaValidatorImpl.java:46) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.internal.AbstractSchemaValidator.performValidation(AbstractSchemaValidator.java:97) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.internal.AbstractSchemaValidator.doValidation(AbstractSchemaValidator.java:75) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:293) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:143) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at java.base/java.util.HashMap.forEach(HashMap.java:1421) ~[na:na]
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:140) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:291) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:431) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1455) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.0.9.jar:6.0.9]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) ~[spring-orm-6.0.9.jar:6.0.9]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.0.9.jar:6.0.9]
	... 112 common frames omitted

Did some tweaks from version 6.1.6 to 6.2.2 break functionality or require new configuration?

I don’t think you need the converter. Try commenting it out. It should work fine without it.