无法Map属性,请考虑声明/实现Map方法

6mzjoqzu  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(550)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

13天前关门了。
改进这个问题
当我试图编译我的应用程序时,它显示了这个错误,整个应用程序是用jhipster生成的。
详细描述错误:[error]/c:/users/user/desktop/devs/curtipieles/curti back/src/main/java/com/curtipieles/app/service/mapper/leathermapper.java:[21,16]无法将属性“com.curtipieles.app.domain.usage leather.usage”Map到“java.lang.string usagename”。考虑声明/实现一个Map方法:“java.lang.string map(com.curtipieles.app.domain.usage value)”。
错误

这是我的皮夹:

@Mapper(componentModel = "spring", uses = {LeatherFamilyMapper.class, LeatherHasColorMapper.class, LeatherHasUsageMapper.class})
public interface LeatherMapper extends EntityMapper<LeatherDTO, Leather> {

    @Mapping(source = "family.id", target = "familyId")
    @Mapping(source = "family.name", target = "familyName")
    @Mapping(source = "color.id", target = "colorId")
    @Mapping(source = "color.id", target = "colorName")
    @Mapping(source = "usage.id", target = "usageId")
    @Mapping(source = "usage.usage", target = "usageName")
    LeatherDTO toDto(Leather leather);

    @Mapping(source = "familyId", target = "family")
    @Mapping(source = "colorId", target = "color")
    @Mapping(source = "usageId", target = "usage")
    Leather toEntity(LeatherDTO leatherDTO);

    default Leather fromId(Long id) {
        if (id == null) {
            return null;
        }
        Leather leather = new Leather();
        leather.setId(id);
        return leather;
    }
}

这是我的皮条(我不把干劲和干劲放在一起,以免把问题拖得太长)

public class LeatherDTO implements Serializable {
    private Long id;

    private String imageUrl;

    private String name;

    private String description;

    private Boolean status;

    private Instant creationDate;

    private Boolean isNew;

    private Long familyId;

    private String familyName;

    private Long colorId;

    private String colorName;

    private Long usageId;

    private String usageName;

这是我的皮革课:

@Entity
@Table(name = "leather")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Leather implements Serializable {
    private static final long serialVersionUID = 1L;

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

    @Column(name = "image_url")
    private String imageUrl;

    @Column(name = "name")
    private String name;

    @Column(name = "description")
    private String description;

    @Column(name = "status")
    private Boolean status;

    @Column(name = "creation_date")
    private Instant creationDate;

    @Column(name = "is_new")
    private Boolean isNew;

    @ManyToOne
    @JsonIgnoreProperties(value = "leathers", allowSetters = true)
    private LeatherFamily family;

    @ManyToOne
    @JsonIgnoreProperties(value = "leathers", allowSetters = true)
    private LeatherHasColor color;

    @ManyToOne
    @JsonIgnoreProperties(value = "leathers", allowSetters = true)
    private LeatherHasUsage usage;

这是我的leatherhasusage课程:

@Entity
@Table(name = "leather_has_usage")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class LeatherHasUsage implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @Column(name = "status")
    private Boolean status;

    @ManyToOne
    @JsonIgnoreProperties(value = "leatherHasUsages", allowSetters = true)
    private Usage usage;

    // jhipster-needle-entity-add-field - JHipster will add fields here
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Boolean isStatus() {
        return status;
    }

    public LeatherHasUsage status(Boolean status) {
        this.status = status;
        return this;
    }

这是我的leatherhascolor课程:

@Entity
@Table(name = "leather_has_color")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class LeatherHasColor implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @Column(name = "status")
    private Boolean status;

    @ManyToOne
    @JsonIgnoreProperties(value = "leatherHasColors", allowSetters = true)
    private Color color;

这是我的皮革家庭课

@Entity
@Table(name = "leather_family")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class LeatherFamily implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @Column(name = "image_url")
    private String imageUrl;

    @Column(name = "name")
    private String name;

    @Column(name = "description")
    private String description;

    @Column(name = "status")
    private Boolean status;

    @Column(name = "is_new")
    private Boolean isNew;

    @Column(name = "creation_date")
    private Instant creationDate;
oo7oh9g9

oo7oh9g91#

这就是问题的解决办法
您将“usage.usage”更改为“usage.usage.usage”,并且很可能还将“usage.id”更改为“usage.usage.id”,因为您似乎忘记了您有一个额外级别的对象,并且对颜色进行了类似的更改,您的代码应该全部修复。-安德烈亚斯的评论

相关问题