具有公开存储库的实体继承:如何合并抽象集合资源上的键

时间:2019-03-01 10:54:06

标签: spring-boot spring-data-rest spring-hateoas

将Spring Boot 2与Spring Data Rest结合使用。

给出以下实体树,其中所有类都有一个公开的存储库 (必填):

abstract class Fruit;
class Apple extends Fruit;
class Lemon extends Fruit;

调用抽象集合资源/ fruits返回Fruit对象 每个键都以具体的类名称命名:

{
    _embedded: {
        apples: [0: , 1: ..],
        lemons: [0: , 1: ..]
    }
}

我只想让抽象集合中的果实合并到一个键中 以抽象类名称命名:

{
    _embedded: {
        fruits: [0: , 1: ..],
    }
}

仅在未公开具体类存储库的情况下才有效。我需要这些 也可以使用具体的类资源。

它尝试使用Fruit抽象类的RelProvider类,但是它也更改了我不希望的具体集合资源的键名:

GET /apples:

{
    _embedded: {
        fruits: [0: , 1: ..],
    }
}

这就是我想要的:

GET /fruits: 

{
    _embedded: {
        fruits: [0: , 1: ..],
    }
}

GET /apples:

{
    _embedded: {
        apples: [0: , 1: ..],
    }
}

GET /lemons:

{
    _embedded: {
        lemons: [0: , 1: ..],
    }
}

0 个答案:

没有答案