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
的投影功能来做到这一点
这里有一个类似的问题
我有这样的实体:
@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
的投影功能来做到这一点这里有一个类似的问题