Spring Data REST错误地为嵌入式集合生成链接

时间:2015-04-23 15:31:14

标签: spring spring-data spring-data-jpa spring-data-rest

我有一个案例,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对象的子实体。也许我在对象树中对这个错误进行了建模?

1 个答案:

答案 0 :(得分:0)

这不再是问题。我想通过更新到Spring HATEOAS 0.17.0解决了这个问题,但我不确定。我在同一时间处理了很多问题,并且把这个问题搁置了一下,现在一切正常。