Как сгенерировать MetaModel для полей с аннотацией @Convert? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь сгенерировать классы MetalModel, используя org.hibernate:hibernate-jpamodelgen, и он пропускает мои поля, помеченные @Convert аннотацией, например:

@Entity
public class Item {
    @Column
    @Convert(converter = StuffConverter.class)
    private Stuff stuff;
}

public class StuffConverter implements AttributeConverter<Stuff, String> {

    @Override
    public String convertToDatabaseColumn(Stuff attribute) {
         // serialize to json
    }

    @Override
    public Stuff convertToEntityAttribute(String dbData) {
        // deserialize from json
    }
}

Интересно, что если я отмечу поля? с аннотацией @Basic она находится в сгенерированном классе метамодели, но я не уверен, что поле для пометки @Basic будет правильным, как указано в документации:

The
 * <code>Basic</code> annotation can be applied to a persistent
 * property or instance variable of any of the following types: Java
 * primitive types, wrappers of the primitive types 
... [skipped for brevity]

Интересно, что юнит-тесты генератораПроверьте следующий случай, и он отлично работает:

    @ElementCollection
    @Convert(converter = ItemRoleConverter.class)
    private Set<Role> roles = new HashSet<>();

Но в моем случае это не коллекция.

...