Dozer String для отображения enum

У меня есть такой enum:

public enum PartnershipIndicator {
    VENDOR("VENDOR"), COPARTNER("COPARTNER"), BUYER("BUYER");

    String code;

    private PartnershipIndicator(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public static PartnershipIndicator valueOfCode(String code) {
        for (PartnershipIndicator status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException(
            "Partnership status cannot be resolved for code " + code);
    }

    @Override
    public String toString() {
        return code;
    }
}

Мне нужно преобразовать его в строку и наоборот.Теперь это делается с помощью пользовательского конвертера. Но я хочу сделать это через сопоставления бульдозеров (если это возможно). Если я не пишу никаких сопоставлений в бульдозерную конфинцию, я получаю

org.dozer.MappingException: java.lang.NoSuchMethodException: by.dev.madhead.demo.test_java.model.PartnershipIndicator.<init>()

исключение. Я не могу добавить открытый конструктор по умолчанию в enum, так как это невозможно. Итак, я написал трюк с внутренним кодом и valueOfCode () / toString (). Это не работает. Затем я сопоставил его в конфигурации Dozer:

<mapping>
    <class-a>java.lang.String</class-a>
    <class-b create-method="valueOfCode">by.dev.madhead.demo.test_java.model.PartnershipIndicator</class-b>
</mapping>

Это не работает. Я пробовал valueOfCode (), односторонние сопоставления. Ничего не работает Перечисление Enum в String тоже не работает, я получаю пустые строки. Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос