Прямая ссылка на себя, ведущая к циклу - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь отправить запрос на возврат массива объекта - Coupon, когда я отправляю запрос, я получаю ответ -

Прямая ссылка на себя, ведущая к циклу (через цепочку ссылок: java.util.HashSet[0] => model.Coupon["emptyCoupon"] => model.Coupon["emptyCoupon"])

Вероятно, проблема решает model.Coupon.пустой купон предназначен для возврата, если запрошенный купон не существует.

public static final int NO_ID = -1;

private static final Coupon EMPTY_COUPON = new Coupon(NO_ID, null, null, null, NO_ID, NO_ID, null, NO_ID, null);

private long id = NO_ID;
private String title;
private LocalDate startDate;
private LocalDate endDate;
private int amount;
private int category;
private String message;
private double price;
private String image;

public Coupon() {
}

private Coupon(long id, String title, LocalDate start_date, LocalDate end_date, int amount, int category,
        String message, double price, String image) {
    this.id = id;
    this.title = title;
    this.startDate = start_date;
    this.endDate = end_date;
    this.amount = amount;
    this.category = category;
    this.message = message;
    this.price = price;
    this.image = image;
}

public Coupon getEmptyCoupon() {
    return EMPTY_COUPON;
}

До добавления EMPTY_COUPON у меня не было проблем с запросами.Мне нужен пустой купон в коде, и я буду рад помочь

1 Ответ

0 голосов
/ 23 января 2019

Поскольку вы сериализуете в JSON или XML с Джерси, у вас может не быть циклов в графе объектов.

У Джерси нет @JsonBackReference, как у Джексона, поэтому вы можете переместить EMPTY_COUPON в отдельный класс (что-то вроде Constants.java) и получить его оттуда.

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

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