唯一注解@GeneratedValue

Unique annotation @GeneratedValue

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

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

问题是为什么当我 POST 某些值没有 id 例如:

{
    "brand": "sony"
}

我自动获取 id = 0:

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

如果我 post 更多资源而不调用 id 它们都有 id = 0(所以它不是唯一的)。

我做错了什么?

I GET automaticly id = 0:

那是因为您使用的是 primitive data type long 并且它的默认值是 0.

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

如果您需要在未设置值的情况下排除此类字段,您可能打算改用 Long(引用类型)。