当前位置: 首页 > 知识库问答 >
问题:

使用spring data rest向集合添加资源

邓英卓
2023-03-14

我的情况:我有一个可以有很多工人的组织。我正试图按照SDR项目的主要贡献者的例子向一个组织添加一个新工人,我得到了各种错误(包括204个错误,但什么也没发生)。

以下是我的实体和Rest电话:

@Entity
public class Organization {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;


    @OneToMany
    @JoinTable(name = "OrganizationWorker", joinColumns = {@JoinColumn(name = "OrganizationID")},
            inverseJoinColumns = {@JoinColumn(name = "WorkerID")})
    private Set<Worker> workers = new LinkedHashSet<>();
}

public class Worker {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    @NotNull
    private String givenName;

    @NotNull
    private String familyName;

    @NotNull
    private LocalDate dob;

    @NotNull
    private String nationalId;

    private byte[] photo;
}

收到http://localhost:8080/hal

{
    "_links": {

        "workers": {
            "href": "http://localhost:8080/hal/workers{?page,size,sort}",
            "templated": true
        }
    }
}

邮递http://localhost:8080/hal/workers

{
 "givenName": "James",
    "familyName": "Bond",
    "dob": "1970-01-01",
    "nationalId": "XXX-60-XXXX",
    "photo": null,
}

答复:

Location: http://localhost:8080/hal/workers/8
Date: Mon, 02 May 2016 16:53:02 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
X-Application-Context: application
Content-Type: application/hal+json;charset=UTF-8


{
    "givenName": "James",
    "familyName": "Bond",
    "dob": "1970-01-01",
    "nationalId": "XXX-60-XXXX",
    "photo": null,
    "_links": {
        "self": {
            "href": "http://localhost:8080/hal/workers/8"
        },
        "worker": {
            "href": "http://localhost:8080/hal/workers/8"
        }
    }
}

最后一步,按照说明中的链接:

curl -X PUT -H "ContentType: text/uri-list" http://localhost:8080/hal/organizations/2 -d 'http://localhost:8080/hal/workers/8'

{
    "cause": null,
    "message": "Target bean is not of type of the persistent entity!"
}

进行一些调试,很明显具体的投诉是什么。堆栈跟踪的线索如下:

@Override
public PersistentPropertyAccessor getPropertyAccessor(Object bean) {

    Assert.notNull(bean, "Target bean must not be null!");
    Assert.isTrue(getType().isInstance(bean), "Target bean is not of type of the persistent entity!");

    return new BeanWrapper<Object>(bean);
}

getType()-

isInstance(bean)-

有什么意见吗?我严格按照指示去做。

共有1个答案

孔城
2023-03-14

答案是这样的(我出去散步后才清醒过来,然后撞上了这个)。

你得发到协会资源

http://localhost:8080/hal/organizations/1/workers

我突然想到了这一点,然后我去重新阅读了这篇帖子。

对于像我这样愚蠢的错误,400个错误会有用得多。

 类似资料:
  • 本文向大家介绍JavaScript 向集合添加值,包括了JavaScript 向集合添加值的使用技巧和注意事项,需要的朋友参考一下 示例 要将值添加到集合,请使用以下方法:.add() 如果该值已存在于集合中,则不会再次添加,因为集合包含唯一值。 请注意,该方法本身返回集合,因此您可以将添加调用链接在一起:.add()            

  • 问题内容: 我想在JAR文件中包含资源文件(图像,文本文件…)。我将资产文件夹添加到类路径中,因此当我在netBeans中运行该程序时,程序运行正常。 但是,如果我构建项目,则会收到错误消息: 这是正常错误吗? 所以我试图像这样手动添加资产: 但这行不通。我有事吗?对不起,我的英语,谢谢您的帮助。 问题答案: 不要将文件放在桌面上。转到项目的Source文件夹,然后将其复制到该文件夹​​中。在Ne

  • 我想在我雄辩的模型中推一个额外的计算属性,我想在我的边栏选项卡中使用它作为

  • 正确地创建了Jar,并且在清单中提到了main类。我有以下几个问题: > 目标文件夹包含classes文件夹,而classes文件夹中有类文件。罐子里也有它们,所以为什么需要它们。我的目标是拥有一个只包含所有依赖项的可执行jar。 这些资源根本没有被添加到jar中。我已经根据网上看到的说明添加了变压器,但是没有用!!! 我完全没有关于如何包含资源的线索。感谢任何帮助!! 编辑:::: 这是我用于m

  • 如何使用Gradle将配置文件或任何其他资源添加到我的jar中? 我的项目结构: Com/Perseus/..----Java包(类文件) config/*.xml--Spring配置文件

  • 尝试添加到集合时出现“Collection was modified”异常 问题出在“添加”方法上。如果我注释掉该部分,则不会引发异常。重要的是要注意,我已经尝试将foreach重写为for循环并添加“ToList()”以形成。链接。在所有情况下都会引发相同的异常。我在站点的其他部分使用这种完全相同的模式没有问题,这就是为什么这如此令人沮丧。这也适用于“创建”。问题只影响“编辑”操作。 其他相关代