首页 > 解决方案 > 为什么我不能访问映射器中的嵌入属性?

问题描述

我有以下嵌入

@Data
@Embeddable
public class BaseEntity {
  
  @CreatedDate
  @Column(name = "created_date")
  private LocalDateTime createdDate;

  @CreatedBy
  @Column(name = "created_by")
  private String createdBy;
}

我像这样嵌入到我的实体中

@Entity
@Data
@NoArgsConstructor
@Table(name = "participant")
public class Participant {

  @Id
  @GeneratedValue
  private UUID id;

  @Embedded
  private BaseEntity baseEntity;
}

在我的映射器中,我想像这样访问参与者的嵌入属性

 @Mapping(target = "createdDate", source = "participant.createdDate")
  ParticipantDto entityToDto(Participant participant);

但我收到以下错误消息

错误:参数“participant”的类型没有名为“createdDate”的属性。

作为映射源,我尝试了参与者.basicEntity.createdDate,这也导致了相同的错误消息以及未指定任何映射,因此 mapstruct 可以自动映射,这也导致找不到属性错误消息

标签: spring-bootjpaspring-data-jpamapstructembeddable

解决方案


推荐阅读