Skip to content

generic enum converter dont work [DATAJDBC-566] #787

Open
@spring-projects-issues

Description

@spring-projects-issues

edwil13x opened DATAJDBC-566 and commented

i want to use a genric converter for all the enums i used in my project. but i got an error.

Explanations :

Given this enum 

public enum Gender  {
    MALE("male"), FEMALE("female"), NON_BINARY("non-binary");

    private String gender;

    Gender(String gender) {
        this.gender = gender;
    }

    
    public String toString() {
        return gender;
    }
}

and this jdbcConfig

 

@Configuration
public class DataJdbcConfiguration extends AbstractJdbcConfiguration {

 
public <T extends Enum<T>> Converter<String, T> createEnumReadingConverter(Class<T> enumClass) { return new Converter<String, T>() { @Override public T convert(String value) { for(T constant : enumClass.getEnumConstants()) { if(constant.toString().equalsIgnoreCase(value)) return constant; } throw new IllegalArgumentException("Unable to find Enum type for : " + value); } } ; }

    @Override
    public JdbcCustomConversions jdbcCustomConversions() {
   
        Converter<String, Gender> genericGenderConverter =  createEnumReadingConverter(Gender.class);
        return new JdbcCustomConversions(Arrays.asList(genericGenderConverter));
    }

}

 

=> why my genericGenderConverter is not use at all, and spring data back to the default enum converter.

 

 

 


Affects: 2.0.1 (Neumann SR1)

1 votes, 2 watchers

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions