Мы используем Jersey (библиотека 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 детей.
Каждый родитель имеет свою собственную копию child2.
Есть ли способ заставить JAXB сериализовать отношения и показать, что оба parent1 и parent2 указывают на один и тот же объект?
Мы обнаружили эту проблему только недавно, когда передавались более сложные элементы.
Если нет способа заставить JAXB сделать это (это то, во что я сейчас верю), есть ли у кого-нибудь какие-либо предложения о том, как я мог бы совершить магию в Джерси для восстановления отношений?