【发布时间】:2020-03-12 10:23:07
【问题描述】:
我正在尝试弄清楚如何将 PUT 直接放在我拥有的多对多关联上。
我的实体示例(更改名称以增加混淆):
第一个实体:
@Entity
public class First {
@Id
private Long id;
private String name;
@OneToMany(mappedBy = "first")
private Set<Third> thirds = new HashSet<>();
}
第二个实体:
@Entity
public class Second {
@Id
private Long id;
private String name;
@OneToMany(mappedBy = "second")
private Set<Third> thirds = new HashSet<>();
}
第三实体:
@Entity
public class Third {
@Id
private Long id;
private String type;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "first_id")
private First first;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "second_id")
private Second second;
}
现在我想做的是这样的:
PUT /first/1/thirds
{
"second": "/second/1",
"type": "TEST"
}
但是什么也没发生。当您在多对多中间使用实体时,是否可以通过这种方式放置关联?还是应该直接将关联发布到 /third?
【问题讨论】:
-
您使用的是 spring-rest-data 还是自定义控制器?
-
我正在使用带有 @RepositoryRestResource 注释的存储库
标签: java spring-boot spring-data-rest