独特的注释@GeneratedValue

时间:2017-10-07 12:34:46

标签: java spring rest annotations crud

我想要做的是使用自动生成的id添加(POST)资源。 我添加了注释,我的模型看起来像这样

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String brand;

问题就是为什么当我在没有id的情况下POST一些值时,例如:

{
    "brand": "sony"
}

我自动获取id = 0:

{
    "id": 0,
    "brand": "sony"
}

如果我在没有调用id的情况下发布更多资源,那么他们都有id = 0(所以它不是唯一的)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

我自动获取id = 0:

这是因为您使用的是primitive data type long,其默认值为0

如果没有明确指定,这些字段的序列化 - 反序列化将最终附加原始数据类型的默认值

如果您在没有设置值时需要排除此类字段,则可能打算使用Long(引用类型)。