【问题标题】:Spring Boot throws exception when int field in mongodb model has null value in the database当 mongodb 模型中的 int 字段在数据库中具有空值时 Spring Boot 抛出异常
【发布时间】:2018-09-14 08:39:28
【问题描述】:

当用户没有为某些字段输入数据时,我将 null 作为该 int 字段的值传递,以表示用户没有输入任何值

{user: 'John',
 age: null}

但是当我在我的 Spring Boot 应用程序中读取这样的文档时,当它遇到上面的文档时,会抛出

Caused by: java.lang.IllegalArgumentException: Parameter age must not be null!

是 mongodb 中的 null 允许值还是 Spring Boot 做错了什么?

我尝试过:

@Data
@Document
public class User {
    final private String user;
    @org.springframework.lang.Nullable    
    final private int age;
}

但这并没有什么区别。除了不存储 null 之外,如何解决这个问题(因为 null 已经填充在另一个节点/mongoose 应用程序中(它很乐意存储和读取 null 值而没有任何问题)使用相同的 mongodb 数据库?

【问题讨论】:

  • 如果您将age 更改为Integer 而不是int,您会看到什么?
  • 我将 int 替换为 Integer 并解决了问题。不知道为什么它不适用于 int。谢谢
  • 在下面添加了解释,如果对你有用,请接受:)

标签: mongodb spring-boot mongoose


【解决方案1】:

int 替换为Integer,因为int 是不接受null 值的原始类型。 Integer 是一个接受 null 值的包装对象。

【讨论】:

    猜你喜欢
    • 2021-08-31
    • 2020-02-05
    • 1970-01-01
    • 2020-01-21
    • 2020-06-02
    • 2016-09-26
    • 2019-09-19
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多