Джексон десериализует объект из JSON в обратном порядке - PullRequest
0 голосов
/ 28 мая 2019

Джексон десериализует элементы JSON в обратном порядке того, что я получаю.У нас есть среда, в которой у нас есть внешний интерфейс, который отправляет что-то вроде следующего JSON:

{
    "nameElement": "element",
    "subElementList": [
        {
            "nameSubElement": "a"
        },
        {
            "nameSubElement": "b"
        },
        {
            "nameSubElement": "c"
        }
    ]
}

и внутренний интерфейс, который десериализует его через Джексона в объекты, подобные этому:

@Entity
public class Element {

    private String nameElement;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "element", fetch = FetchType.LAZY, orphanRemoval = true)
    @SortNatural
    private SortedSet<SubElement> subElementList;

}
@Entity
public class SubElement {

    private String nameSubElement;

}

Проблема возникает, когда мы смотрим на базу данных, где подэлементы списка десериализуются и сохраняются в обратном порядке: элемент c будет идентификатором 1, элемент b будет идентификатором 2, а элемент a будет идентификатором 3, но мынужно с точностью до наоборот, так как порядок внешнего интерфейса противоположен.Я пытался изменить SortedSet by List, но это не сработало.

1 Ответ

0 голосов
/ 28 мая 2019

Вам необходимо реализовать интерфейс Comparable и обеспечить реализацию для интерфейса метода compareTo, поскольку @SortNatural использует сортировку с `Comparable, реализованной сущностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...