Spring 数据 REST 为嵌入式集合生成 link 不正确

Spring Data REST generating link for embedded collection incorrectly

我有一个案例,SPR 正在为一个嵌入的集合生成 links,这是我的实体的一个属性,而它不应该。我有以下 class 结构。我也在使用 Lombok 生成各种 getter/setters,但我认为这不重要。

@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 部分得到以下内容。

"_links" : {
  "self" : {
    "href" : "http://localhost:8080/people/1"
  },
  "person" : {
    "href" : "http://localhost:8080/people/1/person"
  }
}

如我所料,尝试访问此 /people/1/person link 失败并返回 404。我已经确认它来自 Person 对象上的 addresses 集合。但我无法弄清楚为什么它在那里以及如何删除它。

实体的 Address class 没有 Repository,因为它们完全是 Person 对象的子实体。也许我在对象树中建模错误?

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