Здравствуйте, столкнулся с проблемой: после конвертирования объекта в 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"
}
]
Список зависимых услуг для каждого сервиса отсутствует. Может быть мне не хватает какой-либо аннотации ? Прошу помощи с данной проблемой.
Нужно добавить @JsonManagedReference
к полю services
в классе AutoService
Попробуй как в данном примере
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;
}
Проблема была в отсутствии геттера на List<Services>
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Обработка точки не работает правильно, голову сломалНе могу понять как написать надо
Как мне изменить текст путем нажатия кнопки?
Гуглил, пытался методом тыка, читал, искал, но так и не смог найти, как убрать отступ от SelectBoxТ