如何不在 hibernate/springboot 中获取 @ManyToMany 中的集合?

我有 3 个表,公司、优惠券、客户。许多公司应该有很多优惠券,很多客户应该有很多优惠券。


一切工作正常,除了当我打电话给优惠券/客户时我不想获得优惠券集合这一事实之外。


我正在使用 Swagger 来测试该应用程序,并且我正在向客户/公司获取优惠券集合。


我确实尝试添加 LAZY 获取类型,但它不起作用,我实际上不确定如何调用它。


我不想在致电公司时收到优惠券集合。


@Entity

public class Company {


@Id

@GeneratedValue(strategy = GenerationType.AUTO)

@Column

private long id;

@ManyToMany

private List<Coupon> coupons;

private String name;

private String email, password;


public Company() {


}


public Company(long id, String name, String email, String password) {

    this.id = id;

    this.name = name;

    this.email = email;

    this.password = password;

}



@Entity

public class Coupon {


@Id

@GeneratedValue

@Column

private long id;

private String title;

private String message;

private double price;

private int amount;


@Enumerated(EnumType.STRING)

@Column(columnDefinition = "varchar(32) default 'OTHER'")

private CouponType type = CouponType.OTHER;

@Enumerated(EnumType.STRING)

@Column(columnDefinition = "varchar(32) default 'SALE'")

private CouponStatus status = CouponStatus.SALE;

这是我在大摇大摆地打电话给一家公司时得到的 JSON


{

  "id": 2,

  "coupons": [],

  "name": "Macdonalds",

  "email": "Macdonalds",

  "password": "123"

}


慕少森
浏览 84回答 1
1回答

慕桂英546537

如果你不希望在创建json时被序列化(springboot中默认),则需要将其排除。在 Jackson 中,只需用以下注释即可@JsonIgnore:@JsonIgnore@ManyToManyprivate List<Coupon> coupons;另一方面,在 gson 中,您必须用 注释所有其他字段@Expose。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java