Json не содержит список зависимых объектов

303
13 февраля 2017, 14:21

Здравствуйте, столкнулся с проблемой: после конвертирования объекта в JSON, я не вижу в нем списка зависимых объектов, считанных из БД. У меня есть два класса AutoService и Service. У одного автосервиса может быть несколько услуг, то есть отношение OneToMany. В результате чего в классе AutoService в поле храниться список услуг

@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "autoServiceId")
private List<Service> services;

Для конвертации в JSON использую MappingJackson2HttpMessageConverter.

Ниже будет представлен код названных классов.

Класс AutoService

@Entity
@Table(name = "AutoRate")
public class AutoService {
    public AutoService() {
    }
    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    private long id;
    @Column(name = "serviceName", nullable = false)
    private String serviceName;
    @Column(name = "imageURL", nullable = false)
    private String imageURL;
    @Column(name = "mapCoordinate", nullable = false)
    private String mapCoordinate;
    @Column(name = "websiteURL", nullable = false)
    private String websiteURL;
    @Column(name = "phoneNumber", nullable = false)
    private String phoneNumber;
    @OneToMany(fetch = FetchType.EAGER)
    @JoinColumn(name = "autoServiceId")
    private List<Service> services;
    public long getId() {
        return id;
    }
    public String getServiceName() {
        return serviceName;
    }
    public String getImageURL() {
        return imageURL;
    }
    public String getMapCoordinate() {
        return mapCoordinate;
    }
    public String getWebsiteURL() {
        return websiteURL;
    }
    public String getPhoneNumber() {
        return phoneNumber;
    }
}

Класc Service

@Entity
@Table(name = "Service")
public class Service {
    public Service() {
    }
    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    @Column(name = "serviceId", unique = true, nullable = false)
    private long serviceId;
    @Column(name = "serviceName", nullable = false)
    private String serviceName;
    @Column(name = "category", nullable = false)
    private String category;
    @Column(name = "price", nullable = false)
    private int price;
    @Column(name = "autoServiceId", nullable = false)
    private long autoServiceId;
    public long getId() {
        return serviceId;
    }
    public String getCategory() {
        return category;
    }

    public int getPrice() {
        return price;
    }
    public String getServiceName() {
        return serviceName;
    }
    public long getAutoServiceId() {
        return autoServiceId;
    }
}

В результате получаю следующий JSON:

[
  {
    "id": 1,
    "serviceName": "SpeedyName",
    "imageURL": "Url for speedy",
    "mapCoordinate": "123123 44121 ",
    "websiteURL": "speedy.com",
    "phoneNumber": "1231251"
  },
  {
    "id": 2,
    "serviceName": "Другой сервис",
    "imageURL": "Урл для второго сервиса",
    "mapCoordinate": "123 12фывфы",
    "websiteURL": "другойсервис.ком",
    "phoneNumber": "12312333"
  }
]

Список зависимых услуг для каждого сервиса отсутствует. Может быть мне не хватает какой-либо аннотации ? Прошу помощи с данной проблемой.

Answer 1

Нужно добавить @JsonManagedReference к полю services в классе AutoService

Answer 2

Попробуй как в данном примере

public class User {
    public int id;
    public String name;
    @JsonBackReference
    public List<Item> userItems; } 
public class Item {
    public int id;
    public String itemName;
    @JsonManagedReference
    public User owner; 
 }
Answer 3

Проблема была в отсутствии геттера на List<Services>

READ ALSO
Строка на входе, нужно узнать является ли числом

Строка на входе, нужно узнать является ли числом

Обработка точки не работает правильно, голову сломалНе могу понять как написать надо

299
Hibernate. Join одного из полей сущности

Hibernate. Join одного из полей сущности

Начинаю изучать hibernate, возник вопрос

235
Как мне изменить текст путем нажатия кнопки? [требует правки]

Как мне изменить текст путем нажатия кнопки? [требует правки]

Как мне изменить текст путем нажатия кнопки?

292
Убрать отступ от SelectBox

Убрать отступ от SelectBox

Гуглил, пытался методом тыка, читал, искал, но так и не смог найти, как убрать отступ от SelectBoxТ

252