Lombok,Spring mongodb和jackson构造函数问题

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

ben*_*n c 5

它是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)