如何在Spring Data中处理双向@DBref?

问题描述

我有一个自行车模特:

public class Bike {

    @Id
    private ObjectId objectId;

    @DBRef
    private Brand brand;

    private String model;
}

和品牌模型:

public class Brand {

    @Id
    private ObjectId objectId;

    private String name;

    @DBRef
    private List<Bike> bikes;
}

如果我使用Spring Data提供的bikeRepository.findAll(),则会陷入循环,因为Bikes引用了Brand文档,而Brand文档又引用了Bike文档。

如何处理?我想获取带有品牌对象(甚至只是品牌名称)的自行车清单

解决方法

尝试为自行车课添加@JsonBackReference注释:

public class Bike {

    @Id
    private ObjectId objectId;

    @JsonBackReference
    @DBRef
    private Brand brand;

    private String model;
}