【发布时间】:2019-02-11 16:20:03
【问题描述】:
我在我的项目中使用 Spring Boot 和 lombok,但遇到了一些问题。 我的班级是这样的:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;
@Data
@Document(collection = "elements")
public class ElementEntity {
@Id
private String id;
// ...
}
现在,如果我使用 jackson ObjectMapper 创建 ElementEntity,我会收到以下运行时错误:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 不能 构造
ElementEntity的实例(无创建者,默认 构造,存在):不能从对象值反序列化(没有委托- 或基于属性的创建者)
但如果我从 lombok 添加@NoArgsConstructor,我会收到以下编译错误:
[ERROR] ElementEntity.java:[11,1] 构造函数 ElementEntity() 是 已在 ElementEntity 类中定义
似乎@Document 增加了一个,但可能只有包可见性。有没有简单的方法来解决这个问题,或者我必须手动为每个 @Document 添加一个公共的无参数构造函数?
【问题讨论】:
-
lombok 的版本是多少?
-
@benjaminc 我目前使用的是 1.16.22
标签: java jackson lombok spring-mongodb