【问题标题】:SpringBoot : parameterize resolving entity relations by different GET requestsSpring Boot:通过不同的 GET 请求参数化解析实体关系
【发布时间】:2020-07-09 20:37:07
【问题描述】:

我想通过对实体的不同 GET 请求来参数化获取和返回实体关系。 有没有一种配置方式来实现这一点,结合 fetch 策略和 json 包含?

示例:如何通过 A 上的不同 Gets 返回/不返回 Bs 列表。

@Entity
public class A {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(mappedBy = "a", fetch = FetchType.LAZY)
    private List<B> listBs ; 
}

@Entity
public class B {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToOne(fetch = FetchType.LAZY)
    private A a ; 
}

【问题讨论】:

    标签: json spring-boot spring-data-jpa spring-rest


    【解决方案1】:

    您可以使用@JsonManagedReference@JsonBackReference 来完成此操作

    @Entity
    public class A {
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        @OneToMany(mappedBy = "a", fetch = FetchType.LAZY)
        @JsonBackReference
        private List<B> listBs ; 
    }
    
    @Entity
    public class B {
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        @OneToOne(fetch = FetchType.LAZY)
        @JsonManagedReference
        private A a ; 
    }
    

    【讨论】:

    • 嗨 Golam,我想控制 A 上两个不同 Get 请求中 B 列表的返回。我认为 JsonManagedReference 和 JsonBackReference 不适合这里。
    猜你喜欢
    • 2012-07-01
    • 2017-12-27
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2020-11-09
    • 2018-09-09
    • 2020-11-04
    相关资源
    最近更新 更多