modelMapper конвертация Entity в DTO с разным количеством полей в source и destination

Помогите, пожалуйста, разобраться с modelMapper. Ситуация следующая. Есть таблица с шаблонами заказов Она связана отношением


    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)  @JoinTable(
    name = "ORDER_FIELDS",
    joinColumns = {@JoinColumn(table = "ORDER_TEMPLATE", name = "ORDER_ID", referencedColumnName = 
     "ID")},
    inverseJoinColumns = @JoinColumn(table = "ORDER_FIELD", name = "FIELD_ID", referencedColumnName = "ID"))  

с таблицей доп. опций. При изменении связанных полей (удаление или добавление), неизмененые значения записываются новой строкой. Этого не должно быть. Доп. опции могут быть добавлены самостоятельно через отдельный интерфейс, а при редактировании заказа должны меняться только в заказе, не влияя на таблицу доп. опций. сейчас вот так:


    private OrderTemplate convertToEntity(OrderTemplateDto dto) { 
    modelMapper = mapper();     
    OrderTemplate entity = modelMapper.map(dto, OrderTemplate.class);
    return entity;
    }

маппер настроен так:  

    private ModelMapper mapper() {
    ModelMapper mapper = new ModelMapper();
    mapper.getConfiguration()
            .setMatchingStrategy(MatchingStrategies.STRICT)
            .setFieldMatchingEnabled(true)
            .setSkipNullEnabled(true);
    return mapper;
    }

При каждом изменении ORDER_TEMPLATE в таблицу ORDER_FIELDS дописываются поля, связанные с ORDER_TEMPLATE. Это неправильно, ORDER_FIELDS не должна изменяться с изменением ORDER_TEMPLATE. Должны обновляться ссылки. Перерыл много ресурсов, ответа не нашел.


Ответы (0 шт):