【发布时间】:2018-11-25 22:41:27
【问题描述】:
在我的 Spring Data Rest 项目中,我有一个 Competition 实体,它引用了一个 GeoLocation 实体:
public class Competition {
@Id
private String uname;
[...]
@NotNull
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private GeoLocation geoLocation;
}
public class GeoLocation {
@Id private Long id;
private Double latitude;
private Double longitude;
}
由于每个Competition 都必须定义一个GeoLocation,因此Competition 实体通过cascade 处理创建。通过 POST 创建新的 Competition 实体时,我收到以下响应:
{
"uname": "Some Competition",
"geoLocation": {
[content of geoLocation]
},
"_links": {
[...]
}
}
但是当我调用新创建的比赛时,GeoLocation 的内容会被包裹在一个content 字段中。
{
"uname": "Some Competition",
"geoLocation": {
"content": {
[content of geoLocation]
}
},
"_links": {
[...]
}
}
我希望这两个请求会提供相同的响应?
【问题讨论】:
-
可能与我在这里询问的问题相同:stackoverflow.com/questions/42395831/…
-
@AlanHay 看起来几乎一模一样,谢谢。
-
如果是这样,让你们的关系急切可能会解决。
-
你又是对的@AlanHay。更改为
Eager解决了这个问题。
标签: spring hibernate jpa spring-data-rest