Tho*_*mas 2 java jackson lombok spring-mongodb
我在我的项目中使用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;
// ...
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用jackson ObjectMapper来创建我的ElementEntity,我会收到以下运行时错误:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例
ElementEntity(没有Creator,如默认构造,存在):无法从Object值反序列化(没有基于委托或属性的Creator)
但是,如果我@NoArgsConstructor从lombok 添加,我得到以下编译错误:
[ERROR] ElementEntity.java:[11,1]构造函数ElementEntity()已经在ElementEntity类中定义
它似乎只@Document增加一个,但可能只有包可见性.有没有一种简单的方法可以解决这个问题,或者我必须手动为每个人添加一个public no args构造函数@Document?
它是lombok 1.16.22中的一个错误,尝试升级到1.18.0,
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |