Наследование сущностей с открытыми репозиториями: как объединить ключи в ресурсе абстрактной коллекции - PullRequest
0 голосов
/ 01 марта 2019

Использование Spring Boot 2 с Spring Data Rest.

Учитывая следующее дерево сущностей, где все классы имеют открытый репозиторий (обязательно):

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

Вызов ресурса / фруктов абстрактной коллекциивозвращает объекты Fruit, каждый по своему ключу, названному в честь имен классов бетона:

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

Я бы хотел, чтобы в абстрактной коллекции фрукты были объединены в ключе, названном в честь имени абстрактного класса:

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

Работает только в том случае, если репозитории конкретных классов не выставлены.Мне также нужны эти конкретные ресурсы класса.

Он пытался поиграть с классом RelProvider для абстрактного класса Fruit, но он также меняет имя ключа для конкретных ресурсов коллекции, чего я не хочу:

GET /apples:

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

Вот что я хочу:

GET /fruits: 

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

GET /apples:

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

GET /lemons:

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