我有一个案例,SPR正在为嵌入式集合生成链接,这是我实体的属性,不应该。我有以下类结构。我也在使用Lombok来生成各种getter / setter,但我认为这并不重要。
@Entity
@Data
public class Person
{
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy="person")
private List<Address> addresses;
}
@Entity
@Data
public class Address
{
@Id
@GeneratedValue
private Long id;
private String street;
private String city;
private String state;
private String zip;
@ManyToOne
private Person person;
}
Everything编译,当我从其中一个人的SDR获得JSON输出时,我在链接部分得到以下内容。
"_links" : {
"self" : {
"href" : "http://localhost:8080/people/1"
},
"person" : {
"href" : "http://localhost:8080/people/1/person"
}
}
正如我所料,尝试访问此/people/1/person
链接失败了404。我已经确认它来自addresses
对象上的Person
集合。但我无法弄清楚它为什么存在以及如何将其删除。
Repository
类实体没有Address
,因为它们只是Person
对象的子实体。也许我在对象树中对这个错误进行了建模?
答案 0 :(得分:0)
这不再是问题。我想通过更新到Spring HATEOAS 0.17.0解决了这个问题,但我不确定。我在同一时间处理了很多问题,并且把这个问题搁置了一下,现在一切正常。