首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存相关实体spring data rest HAL-JSON

保存相关实体spring data rest HAL-JSON
EN

Stack Overflow用户
提问于 2014-03-27 09:17:25
回答 1查看 1.3K关注 0票数 4

我有以下问题

我有一个spring data rest的基本配置(没有花哨的东西,也没有自定义的东西)。

使用spring-data-rest-webmvc 2.0.0版本和spring-data-jpa 1.5.0版本

A类

代码语言:javascript
复制
@Entity
public class A {

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

   private String name;

   @ManyToMany
   private List<B> b;

   // getters setters
}

B类

代码语言:javascript
复制
@Entity
public class B {

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

   private String nameb;

   @ManyToMany(mappedBy = "b")
   private List<A> a;

   // getters setters
}

存储库A

代码语言:javascript
复制
@Repository
@RestResource(rel = "a", path = "a")
public interface ARepository extends PagingAndSortingRepository<A, Integer> {

}

存储库B

代码语言:javascript
复制
@Repository
@RestResource(rel = "b", path = "b")
public interface BRepository extends PagingAndSortingRepository<B, Integer> {

}

当我保存一个实体时,工作正常,但我不知道如何保存关系

例如,使用http将"A“保存在"B”中

这是我从这个答案中尝试的最后一件事https://stackoverflow.com/a/13031580/651948

代码语言:javascript
复制
POST http://localhost:8080/api/a

{
    "name": "Name of A",
    "b": {
        "rel": "b",
        "href": "http://localhost:8080/api/b/1"
    }
}

我得到了一个201http代码,但没有保存实体。

是不是已经有人试过了?

EN

回答 1

Stack Overflow用户

发布于 2014-08-13 02:57:18

试着只使用URL。

代码语言:javascript
复制
POST http://localhost:8080/api/a
Content-Type: application/json

{
    "name" : "Name of A",
    "b": "http://localhost:8080/api/b/1"
}

或者,在你的情况下,可能是

代码语言:javascript
复制
"b" :  ["http://localhost:8080/api/b/1"]

因为A.b是一个列表,因此您提交了一个数组。不过,并没有对此进行测试。

从Spring2.0(参见Spring Data Rest 2.0.0.RELEASE Breaks Code Working Previously With RC1)开始,这应该是有效的方法,它对我很有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22676452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档