deserializować leniwe ładowanie w hibernacji i jacksonie
Czy istnieje sposób na załadowanie LAZY i deserializację obiektu przy użyciu id zamiast obiektu POJO.
Mam klasę 2 połączoną relacją wiele do wielu.
Coś takiego
public class User {
@Id
@JsonProperty
public long id;
@ManyToMany(
fetch = FetchType.EAGER,
)
@JoinTable(
name = "User_EntityType",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "type_id")
)
@JsonProperty
public Set<Type> types;
}
public class Type {
@Id
@JsonProperty
public long id;
@ManyToMany(
fetch = FetchType.EAGER,
mappedBy = "types",
targetEntity = User.class
)
@JsonProperty
public Set<User> users;
}
Typ danych działa dobrze. Mogę pisać i czytać za pomocą hibernacji bez problemu.
Jednak chcę mieć możliwość zwrócenia obiektu użytkownika za pomocą interfejsu API REST, więc używam go do deserializacji. Problem polega na tym, że kiedy to robię, deserializuje każdy typ w obiekcie użytkownika, który obejmuje inne obiekty typu i tworzy ogromny bałagan.
Czy można zamiast tego zwrócić identyfikatory typu Zestaw długich zamiast Zestawu typów?