Мы используем Джерси (библиотека Java REST) для проекта в течение последних нескольких месяцев, и нам это нравится. Но на этой неделе столкнулись с проблемой JAXB.
У меня есть элемент, у которого есть 2 дочерних элемента, у каждого из которых есть дочерние элементы, где некоторые из их дочерних элементов ссылаются друг на друга.
Позвольте мне показать код.
Root root = new Root();
Parent parent1 = new Parent();
Parent parent2 = new Parent();
root.add(parent1);
root.add(parent2);
Child child1 = new Child();
Child child2 = new Child();
Child child3 = new Child();
parent1.add(child1);
parent1.add(child2);
parent2.add(child2);
parent2.add(child3);
Итак, у нас есть 1 корень, 2 родителя и 3 ребенка.
Если я отправлю это вверх и вниз по пути JAXB, я, похоже, верну 4 дочерних элемента.
У каждого родителя есть собственная копия дочернего элемента2.
Есть ли способ заставить JAXB сериализовать отношения и показать, что и parent1, и parent2 указывают на один и тот же объект?
Мы обнаружили эту проблему только недавно, когда передавались более сложные элементы.
Если нет способа заставить JAXB сделать это (это то, во что я верю на данный момент), есть ли у кого-нибудь какие-либо предложения о том, как я мог бы сотворить магию в Джерси, чтобы восстановить отношения?