spring data mongo通过Id检索实体时在实体类上找不到属性b

时间:2018-11-08 11:42:45

标签: spring-boot spring-data-mongodb lombok

我有一个具有一些共享字段的父类和一个对其进行扩展的子类。

@SuperBuilder(toBuilder = true)
@Data
public abstract class MultiTenantAuthoredDocument {

    @Indexed
    private String tenantId;

    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime lastModifiedDate;
}


@Document(collection = "users")
@SuperBuilder(toBuilder = true)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
 public class User extends MultiTenantAuthoredDocument {

    @Id
    private String id;

    private String firstName;

    private String lastName;

    @Indexed
    private String password;

    @Indexed(unique = true)
    private String userName;

    @Indexed(unique = true)
    private String email;

    @Indexed
    private List<UserRole> roles;

    @Builder.Default
    private boolean enabled = false;

}

但是,在运行单元测试时,执行findById时出现意外异常,结果为: No property b found on entity class be.moesmedia.erp.users.domain.User to bind constructor parameter to! 因为我不知道属性b的来源,所以很难看出我做错了什么。
如果有人可以帮助我指出我在做错什么。

1 个答案:

答案 0 :(得分:3)

所以我弄清楚出了什么问题,Lombok生成了一个构造器,该构造器接受具有SuperBuilder类属性的Object。将@NoArgsConstructor添加到子班和父班后,它就像是一种魅力。