问题
I have written a RestController in my SpringBoot app. I am using a MongoDB as well. This is my entity:
public class LocationEntity {
@Id
private String id;
private String name;
@DBRef(lazy = true)
@JsonIgnore
private UserEntity owner;
private String description;
@DBRef(lazy = true)
private List<RoleEntity> roles;
private Date date;
public LocationEntity(String name, UserEntity owner, String description, List<RoleEntity> roles, Date date) {
this.name = name;
this.owner = owner;
this.description = description;
this.roles = roles;
this.date = date;
}
}
RoleEntity and UserEntity are entities from the same database as well.
My RestController's methods return ResponseEntity, so by default Jackson is used inside to serialize Object to JSON.
I would like to ask about lazy loading precisely. If I use @JsonIgnore from Jackson to ignore that field in serialization, will ORM not get "lazy fields" from database?
Thanks for help in advance!
回答1:
ORM will only fetch those lazy loaded fields when needed. That means if you instruct Jackson to ignore them (using @JsonIgnore annotation) during serialization, ORM will not fetch them.
来源:https://stackoverflow.com/questions/58064639/cooperation-mongodb-lazy-loading-with-jackson-jsonignore-in-springboot-rest-con