RestResource:无需额外请求即可获取子实体的 ID

RestResource: get id of subentity without extra request

我有这样的实体:

@Entity
class MyEntity {
    Long id;
    SecondEntity second;
    ...
}

@Entity
class SecondEntity {
    Long id;
    ...
}

我使用@RestResource 来休息-API。 如果我请求 MyEntity 列表,我会得到如下结果:

{
    "_links": {
      "self": {"href": "http://localhost:8080/api/MyEntity/1"},
      "second": {"href": "http://localhost:8080/api/MyEntity/1/second"}
    }
},
{
    "_links": {
      "self": {"href": "http://localhost:8080/api/MyEntity/2"},
      "second": {"href": "http://localhost:8080/api/MyEntity/2/second"}
    }
}

如果我要检查,是[0].second == [1].second,我需要做两个额外的请求。不好。

也许可以配置它提供以下资源的 RestResource?

{
    "_links": {
      "self": {"href": "http://localhost:8080/api/MyEntity/1"},
      "second": {"href": "http://localhost:8080/api/SecondEntity/12"}
    }
},
{
    "_links": {
      "self": {"href": "http://localhost:8080/api/MyEntity/2"},
      "second": {"href": "http://localhost:8080/api/SecondEntity/45"}
    }
}

您可以使用 Spring Data REST

的投影功能来做到这一点

这里有解释https://spring.io/blog/2014/05/21/what-s-new-in-spring-data-dijkstra#user-content-projections-in-spring-data-rest

这里有一个类似的问题