java - Spring Boot Rest Controller 中与 Jackson @JsonIgnore 合作 MongoDB 延迟加载

标签 java mongodb orm jackson lazy-loading

我在我的 SpringBoot 应用程序中编写了一个 RestController 。我也在使用 MongoDB 。这是我的实体:

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;
    }
}

RoleEntityUserEntity 也是来自同一数据库的实体。 我的 RestController 方法返回 ResponseEntity,因此默认情况下使用 JacksonObject 序列化为 JSON. 我想具体询问延迟加载。如果我使用 Jackson 中的 @JsonIgnore 来忽略序列化中的该字段,ORM 不会从数据库获取“惰性字段”吗?

提前感谢您的帮助!

最佳答案

ORM 只会在需要时获取那些延迟加载的字段。这意味着如果您指示 Jackson 在序列化期间忽略它们(使用 @JsonIgnore 注释),ORM 将不会获取它们。

关于java - Spring Boot Rest Controller 中与 Jackson @JsonIgnore 合作 MongoDB 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58064639/

相关文章:

java - 用于 sonarqube 配置的 Jenkins groovy 初始化脚本

java - 通过 Intent 传递 ArrayList<Double>

java - 如何丢弃像 <chars> 这样的 HTML 命令?

mongodb - ssh端口转发时如何解析远程服务器的域名

c# - IMongoCollection 统计数据

mysql - 使用子查询和 case When 语句对查询进行序列化

php - Laravel 有一个条件关系

java - 将输入数据保存到文件

node.js - sequelize 迁移未运行

node.js - 类型错误 : Converting circular structure to JSON when changed to NodeJS Async Await