当前位置: 首页 > 知识库问答 >
问题:

具有继承性的Mapstruct映射器

须巴英
2023-03-14

我有一个BaseEntity,当我像这样制作mapper时,它有一个名为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);

}

Mapstruct不会自动映射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个答案

蓬祺
2023-03-14

我创建了一个示例repo来演示一切按预期工作。请将此与您的代码进行比较,看看有什么不同。

 类似资料:
  • 我有一个用JPA映射的简单类: 我把那门课扩展成了非常简单的课 这正是我对SponsorDefainableBo所需要的。它是Sponsor的副本,并且从与Sponsor相同的表中读取。这是我们通过一些xml文档控制的查询框架所需要的,并且需要成为我正在做的事情的单独对象。需要SponsorDefainableBo插入查询/维护框架以进行我们不想在主父文档中进行的自定义详细信息。当我尝试使用Spo

  • 我们正在使用带有Spring数据的MapStruct在JPA实体和DTO类之间进行转换。所有映射器都使用方法beanToDTO()和dtoToBean()遵循相同的模式。经过一次学习治疗后,我们就有了这一切。现在我们尝试使用Spring注入来替换JPA实体、DTO和映射器类上的实现。我们有JPA实体和DTO替换工作。所以现在我们尝试让Spring注入替代映射器实现。 对于我们的问题,我们可以子类映

  • 我有以下情况,我简化了我的实际案例,并创建了最小示例来展示我的案例: 两个空的(在本例中不相关)classess和和映射器继承结构使用一个方法声明将映射到,两个空接口和都扩展,一个实际映射器接口和类实现MapStruct生成的。此设置的问题是mapstruct生成,其内容如下: 所以它不会组合,因为方法声明了两次,一次是通过继承路径,第二次是通过。在不改变我的继承结构的情况下,是否有可能避免这种情

  • 1. 前言 本节课程和大家一起学习继承映射。通过本节课程的学习,你将了解到: 什么是继承映射; 实现继承映射的 3 种方案。 2. 继承映射 学习继承映射之前,需要搞清楚什么是继承映射? 继承是 OOP 中的概念,其目的除了复用代码之外,还用来描述对象在现实世界中的关系。 为了更好地讲解继承映射,咱们再在数据库中创建一张老师表。数据库中多了一张表,按照使用 Hibernate 的套路,理所当然应该