Bonjour

je débute en JPA. J'utilise spring-jpa avec hibernate.

J'ai un objet lodger avec plusieurs relations @OneToOne, @OneToMany. Actuellement, tout est en Cascade All.
Cela fonctionne, mais énormément de requête sont faite et les performance ne sont pas au top.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
    @OneToOne
    private LodgerStatus lodgerStatus;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "lodger")
    private List<IdentityCard> identityCardList;
 
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private OldAddress oldAddress;
 
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private Vehicle vehicle;
 
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private Phone phone;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger") //relation bidirectionnel
    private List<Appointment> appointmentList;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger") //relation bidirectionnel
    private List<Reference> referenceList;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger") //relation bidirectionnel
    private List<Rent> rentList;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger") //relation bidirectionnel
    private List<AccountOperation> accountOperationList;
 
    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY)
    private List<MedicalContact> medicalContactList;
 
    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "lodger")
    private List<LawContact> lawContactList;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger") //relation bidirectionnel
    private List<RoomPayment> roomPaymentList;
Je me demande si je devrais pas juste mettre CascadeType.PERSIST, CascadeType.MERGE (pour gérer la sauvegarde et update) aux relation ou bien
tout simplement gérer les opérations sur les enfants de façon manuel (si c'est possible).

Dans ce cas comment je pourrais le faire?

merci