Я пытаюсь правильно сериализовать объект, доступный для двух объектов, а также для собственного объекта. Я хочу видеть администраторов сайта, а также сайтов, на которых пользователь является администратором, и администраторов определенного сайта. Я попытался использовать @JSONbackmanaged, и он просто дал только идентификаторы. Что-то вроде этого возможно? Это psuedocode, поэтому возможны синтаксические ошибки, но это как можно ближе. Hibernate управляет ORM и загрузкой этих pojos.Jackson Двунаправленная сериализация со связующим объектом
public class SiteAdmin {
private Integer id;
private Site site;
private User user;
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public Facility getSite() {
return this.sitey;
}
public void setSite(Site site) {
this.site = site;
}
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
}
и user.java У меня есть
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public Set<SiteAdmin> getSiteAdmins() {
return this.siteAdmins;
}
и site.java У меня есть
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public Set<SiteAdmin> getSiteAdmins() {
return this.siteAdmins;
}
То, что я ищу, когда я сериализации что-то вроде этого
для пользователя:
{
id: 2
name: 'foo',
siteAdmin: {
user: 2,
site: { id: 6, name: 'site' }
}
}
Для сайта
{
id: 6
name: 'site',
siteAdmins: [
{
user: {id : 2, name: 'foo'},
site: 6
},
{
user: {id : 3, name: 'bar'},
site: 6
},
]
}
Вместо этого я получаю что-то вроде этого
{
id: 6
name: "site",
siteAdmins: [
{
site: {
id: 6
name: "site",
siteAdmins: [
site: 6,
user: {id : 2, name: "foo"}
]
},
user: {id : 3, name: "bar"}
},
1
]
}