Tengo dos Entidades, Socio y Campaña, por lo que he creado una relación unidireccional "Uno a muchos".

Esta es mi entidad Socio :

@Entity
@Table(name = "partner")
@EntityListeners(AuditingEntityListener.class)
public class Partner {

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private String id;

    @NotNull
    @Column(name = "partner_name")
    private String partnerName;

    @NotNull
    @Column(name = "partner_code")
    private String partnerCode;

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "partner_id")
    private List<Campaign> campaigns = new ArrayList<>();

    // constructos, getters, setters, equals, hashcode

    @Override
    public String toString() {
        return "Partner{" +
                "id='" + id + '\'' +
                ", partnerName='" + partnerName + '\'' +
                ", partnerCode='" + partnerCode + '\'' +
                '}';
    }

Esta es mi entidad Campaña :

@Entity
@Table(name = "campaign")
@EntityListeners(AuditingEntityListener.class)
public class Campaign {

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private String id;

    @NotNull
    @Column(name = "partner_name")
    private String partnerName;

    @NotNull
    @Column(name = "partner_code")
    private String partnerCode;

    @NotNull
    @Column(name = "campaign_name")
    private String campaignName;

    @NotNull
    @Column(name = "campaign_code")
    private String campaignCode;

    // constructos, getters, setters, equals, hashcode

    @Override
    public String toString() {
        return "Campaign{" +
                "id='" + id + '\'' +
                ", partnerName='" + partnerName + '\'' +
                ", partnerCode='" + partnerCode + '\'' +
                ", campaignName='" + campaignName + '\'' +
                ", campaignCode='" + campaignCode + '\'' +
                '}';
    }
    

Sin embargo, cuando llamo al método findAll () para los socios, esta es mi respuesta:

enter image description here

Lo que necesito es no obtener el atributo Campaigns en la respuesta cuando obtengo el método de socios findAll (). No entiendo por qué mi método toString no funciona, si he definido que solo imprimo el id, partnerName y partnerCode.

Entonces no quiero una respuesta anidada.

Gracias de antemano.

-2
Caroline 23 ago. 2020 a las 19:02

1 respuesta

La mejor respuesta

Puede usar @JsonIgnore para ignorarlo o puede agregar un atributo a su anotación @OneToMany para cargarlo de manera perezosa. Reemplácelo con:

@OneToMany(fetch=FetchType.Lazy, cascade = CascadeType.ALL, orphanRemoval = true)
3
Aniket Sahrawat 23 ago. 2020 a las 17:13