powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Infinity depth or cycle. JAXB.
2 сообщений из 2, страница 1 из 1
Infinity depth or cycle. JAXB.
    #38459770
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть структура. Хочу вывести три сущности в XML, чтобы в Company был список Departments, а в каждом Department был список Workers.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
   +Company
    -int companyId
    -String companyName
    -Set<Department> listOfDepartments = new HashSet<Department>();

    +Department
    -int departmentId
    -String departmentName
    -Set<Worker> listOfWorkers = new HashSet<Worker>();

    +Worker
    -int workerId
    -String workerName


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
@XmlRootElement(name="Company")
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
public class Company {
    @XmlAttribute(name = "id")
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private int companyId;
    @XmlElement(name = "companyName")
    private String companyName;

    @XmlElement(name="Department")
    @OneToMany(mappedBy = "company", cascade=CascadeType.PERSIST, fetch = FetchType.EAGER)
    private Set<Department> listOfDepartments = new HashSet<Department>();


@XmlRootElement(name="Department")
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
public class Department {
    @XmlAttribute(name = "id")
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private int idDepartment;

    @XmlElement(name = "departmentName")
    private String departmentName;

    @ManyToOne()
    @JoinColumn(name="companyId")
    private Company company;

    @XmlElement(name="Worker")
    @OneToMany(mappedBy = "department", cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
    private Set<Worker> listOfWorkers = new HashSet<Worker>();


@XmlRootElement(name="Worker")
@Entity
public class Worker {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private int idWorker;

    private String workerName;

    @ManyToOne
    @JoinColumn(name="departmentId")
    private Department department;


Ошибка:
Код: java
1.
2.
A cycle is detected in the object graph. This will cause infinitely deep XML: ru.eldarkaa.dto.Company@d1e43ed -> 
ru.eldarkaa.dto.Department@6e55f58 -> ru.eldarkaa.dto.Company@d1e43ed]
...
Рейтинг: 0 / 0
Infinity depth or cycle. JAXB.
    #38459787
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@XMLTransient
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Infinity depth or cycle. JAXB.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]