Mapstruct mapper с наследованием - PullRequest
1 голос
/ 25 мая 2020

У меня есть BaseEntity , у которого есть дочерний элемент с именем Customer Когда я делаю сопоставление следующим образом:

@Mapper(componentModel = "spring")
public interface CustomerMapper {

    Customer toEntity(CustomerDTO model);

    List<Customer> toEntityList(List<CustomerDTO> models);

    CustomerDTO toModel(Customer entity);

    List<CustomerDTO> toModelList(List<Customer> entities);

}

Поля BaseEntity не отображаются автоматически Mapstruct. Подскажите, пожалуйста, как это сделать?

EDIT:

BaseEntity:

@MappedSuperclass
@Data
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity implements Serializable {

    private static final long serialVersionUID = 698399842496839094L;

    @EqualsAndHashCode.Include
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    protected Long id;


    @Column(nullable = false, length = 36)
    protected String uuid;
}

Клиент:

@EqualsAndHashCode(callSuper = true)
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Data
publi class Customer extends BaseEntity {

    private static final long serialVersionUID = 7054669140361044232L;


    @Column(length = 50, unique = true, nullable = false)
    private String login;


    @Column(name = "password_hash", nullable = false, length = 60)
    private String password;
}

1 Ответ

0 голосов
/ 26 мая 2020

Я создал образец репозитория , чтобы продемонстрировать, что все работает должным образом. Сравните это с вашим кодом и посмотрите, в чем разница.

...