我遇到一种情况,即SPR会为嵌入式集合生成链接,而嵌入式集合是我的Entity的属性,而不应。我有以下课程结构。我也在使用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;
}
一切都会编译,当我从一个人的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
对象。也许我在对象树中为这个错误建模?
这不再是问题。我认为我已通过更新到Spring HATEOAS 0.17.0来解决了这个问题,但是我不确定。我同时在处理多个问题,并将此问题搁浅了一段时间,现在一切正常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句