【问题标题】:Spring Data Rest Warn when post an entity发布实体时 Spring Data Rest 警告
【发布时间】:2021-06-26 16:48:04
【问题描述】:

我有一个带有 Spring Data Rest(Lombok 也是)的 Spring Boot 2.5.2 项目。 实体:

@Entity
@Table(uniqueConstraints = {
        @UniqueConstraint(name = "IDX_COUNTRY_NAME_UNQ", columnNames = {"NAME"}),
        @UniqueConstraint(name = "IDX_COUNTRY_CODE_UNQ", columnNames = {"CODE"})
})
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Country extends BaseNamedCodedEntity {
}

超类:

@MappedSuperclass
@Getter
@Setter
public abstract class BaseNamedCodedEntity extends BaseNamedEntity {
    @NotNull
    @Column(updatable = false, nullable = false, unique = true)
    protected String code;
}

@MappedSuperclass
@Getter
@Setter
public abstract class BaseNamedEntity extends BaseEntity {

    @NotNull
    @Column(nullable = false)
    private String name;
}

@MappedSuperclass
@Getter
public abstract class BaseEntity {
    @Id
    @GeneratedValue(generator = "UUID")
    @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
    @Column(updatable = false, nullable = false)
    private UUID id;
}

所有休息请求都可以正常工作。但是当我用 Postman 发送一个简单的 POST 时:

{
    "name": "Test",
    "code": "Test"
}

实体保存在数据库中,但在 IDEA 控制台中我有一个警告:

2021-06-26 19:24:33.097  WARN 15420 --- [nio-8090-exec-5] tion$ResourceSupportHttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class org.springframework.data.rest.webmvc.PersistentEntityResource]]: java.lang.NullPointerException

当通过 NullPointerException 进行调试时,我在 org.springframework.data.rest.webmvc.json.AggregateReferenceResolvingModule 中捕获它 方法

public BeanDeserializerBuilder updateBuilder(DeserializationConfig config, BeanDescription beanDesc, BeanDeserializerBuilder builder)

我在 [property '_links'] 中看到,propertyType: null。 那是 Spring Data Rest 错误吗?

【问题讨论】:

  • 我在从 Spring Boot 2.4.5 升级到 2.5.2(将 Spring Data 3.4.8 升级到 3.5.1)时也遇到了这个问题。当我找到这个问题时,我会更新这个。

标签: java spring-data-rest


【解决方案1】:

将 Spring Boot 升级到 2.5.3 将解决此问题。

这是由于 Spring Data REST 版本 3.5.0 (#2033) 中引入的错误造成的。它已在 Spring Data REST 版本 3.5.3 中修复,该版本包含在 Spring Boot 2.5.3 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-25
    • 2014-07-09
    • 2017-11-13
    • 1970-01-01
    • 2015-05-15
    • 2019-09-30
    • 2018-07-23
    相关资源
    最近更新 更多