Jackson正在按照相反的顺序反序列化JSON元素。我们在一个环境中有一个前端,该前端发送类似于下一个JSON的内容:
{
"nameElement": "element",
"subElementList": [
{
"nameSubElement": "a"
},
{
"nameSubElement": "b"
},
{
"nameSubElement": "c"
}
]
}
还有一个后端,它通过Jackson将其反序列化为这样的对象:
@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;
}
问题来了,当我们查看数据库时,列表的subElement被反序列化并以相反的顺序保存:元素c为id 1,元素b为id 2,元素a为id 3,但是我们需要完全相反,因为前端的顺序是相反的。我试图按列表更改SortedSet,但是没有用。
答案 0 :(得分:0)
您需要实现Comparable
接口并为compareTo
方法接口提供实现,因为@SortNatural
使用与实体实现的Comparable进行排序。