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

源参数中不存在名为“Id”的属性。你是说“空”吗?

堵德曜
2023-03-14

我有点陷入了错误之中

邮递班

@Data
@Getter
@Setter
@Entity
@Table(name = "posts", uniqueConstraints = { @UniqueConstraint(columnNames = { "title" }) }

)

public class Post {

    @Id
    @Column(name = "Id", nullable = false)
    private Long Id;

    @Column(name = "title", nullable = false)
    private String title;

    @Column(name = "description", nullable = false)
    private String description;

    @Column(name = "content", nullable = false)
    private String content;

    @OneToMany(mappedBy = "post", cascade = CascadeType.ALL, orphanRemoval = true)
    private Set<Comment> comments = new HashSet<>();

Comment.class

    Data
    @Entity
    @Table(name = "postcomment")
    public class Comment {
    
        @Id
        @Column(name = "Id", nullable = false)
        private Long Id;
    
        @Column(name = "remark", nullable = false)
        private String remark;
    
        @ManyToOne(fetch = FetchType.LAZY, optional = false) // get only related comments to post
        @JoinColumn(name = "post_Id", nullable = false)
        @OnDelete(action = OnDeleteAction.CASCADE)
        private Post post;
    }

PostDto。班

@Data
public class PostDto {

    private Long Id;

    @NotEmpty
    @Size(min = 2, message = "post title should have atleast 2 characters")
    private String title;

    @NotEmpty
    @Size(min = 10, message = "post title should have atleast 2 characters")
    private String description;

    @NotEmpty
    @Size(min = 10, message = "post title should have atleast 2 characters")
    private String content;

评论Dto.class

@Data
public class CommentDto {

    private Long Id;
    private String remark;


}

评论Mapper.class

@Mapper(imports = { Instant.class, DateTimeFormatter.class })
@Configuration
public interface CommentMapper {

    CommentMapper INSTANCE = Mappers.getMapper(CommentMapper.class);

    @Mapping(source = "Id", target = "Id")
    @Mapping(source = "remark", target = "remark")
    Comment getComment(CommentDto postDto);

    @Mapping(source = "Id", target = "Id")
    @Mapping(source = "remark", target = "remark")
    CommentDto getCommentDto(Comment post);

}

我试图解决它从过去的6小时,但仍然不明白为什么它显示我下面的错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project rest.api: Compilation failure: Compilation failure: 
[ERROR] /D:/work/rest.api/src/main/java/com/rest/api/mapper/CommentMapper.java:[22,17] No property named "Id" exists in source parameter(s). Did you mean "null"?
[ERROR] /D:/work/rest.api/src/main/java/com/rest/api/mapper/CommentMapper.java:[22,17] No property named "remark" exists in source parameter(s). Did you mean "null"?
[ERROR] /D:/work/rest.api/src/main/java/com/rest/api/mapper/CommentMapper.java:[26,20] No property named "Id" exists in source parameter(s). Did you mean "null"?
[ERROR] /D:/work/rest.api/src/main/java/com/rest/api/mapper/CommentMapper.java:[26,20] No property named "remark" exists in source parameter(s). Did you mean "null"?

任何有用的建议都是解决这个问题的希望。

第二,当需要所有的getter和setter时,只有@数据可以吗?


共有1个答案

夏新翰
2023-03-14

出现错误的原因是:"源参数中不存在名为"Id"的属性。你是说“无效”吗?"是由于属性名称Id不存在。

很可能您有一个getter/setter,看起来像getId()setId(String Id)

这意味着从MapStruct的角度来看,属性的名称是id。MapStruct不查看私有字段,它根据getter/setter而不是字段来检测属性。

 类似资料:
  • 我收到Mapstruct异常,其中源和目标中已经存在字段: 来源: 目的地: 例外情况: Pom还有:

  • 本文向大家介绍说说你对属性data-的理解相关面试题,主要包含被问及说说你对属性data-的理解时的应答技巧和注意事项,需要的朋友参考一下 这个不得不提一下标准出来之前的做法。html是支持自定义attribute的,当时为了给前端传数据,大家自己定义的attribute五花八门,不好跟标准区分,js取数据方式也跟标准attribute一样。人家一看这哪行啊,你们不能再这么搞了,听我说,你们都在自

  • 我的问题似乎与这个问题类似,只不过是在rails应用程序中运行时发生的。 当我运行时,它成功运行了一段时间,然后 有什么想法可以解决这个问题吗?(我甚至不确定这是否是Xcode/node/rails/C++的问题) null null 请注意:我不是用cpp编码的,所以我对如何解决的上下文知识很少。

  • 我使用ASP.NETCore创建了一个Web API,并使用swagger创建留档。我使用APIendpoint上的XML注释在留档中提供附加信息。swagger配置是: 我的一个APIendpoint及其XML注释是: 是一个单独的类,它是APIendpoint所需参数的包装器。 此 API 终结点的 swagger 文档将 VisitorSearchCriteria 的所有属性显示为参数,但它

  • 问题内容: 我有一个Web API服务调用,可以更新用户的首选项。不幸的是,当我从jQuery ajax调用中调用此POST方法时,请求参数对象的属性始终为null(或默认值),而不是传入的内容。如果我使用REST客户端调用相同的确切方法(我使用Postman) ,效果很好。我无法弄清楚我在做什么错,但希望有人以前见过。这很简单… 这是我的请求对象: 这是UserController类中的控制器方