2

誰かがこの問題で私を助けることができますか? mapstruct を試してみましたが、うまく機能しますが、双方向の関係を持たないエンティティに対してのみです。

たとえば、次のエンティティがあります。

@Entity
public class Pacients implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int pacientId;

    // bi-directional many-to-one association to Doctori
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "doctorId")
    private Doctors doctor;

    //setters and getters
}

@Entity
public class Doctors implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int doctorId;

    // bi-directional many-to-one association to Pacienti
    @OneToMany(mappedBy = "doctor")
    private List<Pacients> pacients;

    //setters and getters
}

DTO:

public class PacientsDto implements Serializable {


    private int pacientId;
    private Doctors doctor;

    //setters and getters
}


public class DoctorsDto implements Serializable {

    private int doctorId;

    private List<Pacients> pacients;

    //setters and getters
}

それらをdtoにマップしようとすると、その二項関係のためにStackOverflowErrorが発生します。

どうすればこれを解決できますか?mapstruct を使用しないソリューションも受け入れます。

詳細が必要な場合はお知らせください。ありがとうございました!

4

2 に答える 2

3

1 つは医師のマッピング用、もう 1 つは患者のマッピング用です。後者では、医師への参照を無視するようにジェネレーターにアドバイスします。その後、カスタマイズを使用して、@AfterMapping後で医師の参照を設定できます。

于 2016-10-24T10:04:51.253 に答える