spring-data-relational icon indicating copy to clipboard operation
spring-data-relational copied to clipboard

Converters with JDBCType.OTHER broken

Open flx5 opened this issue 4 weeks ago • 0 comments

Custom converters like these are broken in version 4:

new Converter<E, JdbcValue>() {
            @Override
            public JdbcValue convert(E source) {
                return JdbcValue.of(source.name(), JDBCType.OTHER);
            }
        };

The reason seems to be that previously the code 1111 was passed on whereas now it is dropped:

https://github.com/spring-projects/spring-data-relational/blame/f6d4b28912bdd149d7667251172cfcf6a46d04c8/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedJdbcQuery.java#L264

This breaks custom enum conversion for postgres again.


My current workaround is to create a custom SQLType like this:


    SQLType PG_ENUM_TYPE = new SQLType() {
        @Override
        public String getName() {
            return JDBCType.OTHER.getName();
        }

        @Override
        public String getVendor() {
            return JDBCType.OTHER.getVendor();
        }

        @Override
        public Integer getVendorTypeNumber() {
            return JDBCType.OTHER.getVendorTypeNumber();
        }
    };

By using the custom type the comparison fails and the 1111 code gets passed along to the database driver again.

flx5 avatar Nov 27 '25 19:11 flx5