具有自定义参数构造函数的POST rest实体

问题描述 投票:0回答:1

我正在使用spring-data-rest和spring-data-jpa公开我的Entity类,而不需要任何自定义控制器。

@Entity
public class Domain {

    @Id
    private String domainName;

    Domain(String name) {
      this.domainName = name;
    }

    private Domain() { }
}

假设我想创建一个id为stackoverflow.com的域,我应该在请求体中传递什么?

假设域资源在端点/domains上公开。我将@Id设置为String的原因是我希望能够通过GET /domains/{domainName}来检索域名

更新

发送POST请求时如下:

POST /domains
{
    "domainName": "stackoverflow.com"
}

我得到了例外:

JpaSystemException:在调用save()之前必须手动分配此类的ID:space.linuxdeveloper.Network;嵌套异常是org.hibernate.id.IdentifierGenerationException:在根本原因调用save():space.linuxdeveloper.Network]之前,必须手动分配此类的ID

spring rest spring-data-jpa spring-data-rest
1个回答
0
投票

尝试使用此请求正文:

POST /domains
{
    "domainName": "stackoverflow.com"
}

别忘了纠正你的c-tor:

Domain(String domainName) {
  this.domainName = domainName;
}
© www.soinside.com 2019 - 2024. All rights reserved.