KamoCRM

Membru drepturi aplicate scrie doar diferența, și citește rolurile în vrac

Performancekamo-shared-library
Expediere
23 septembrie 2026 la 14:39 UTC
Autor
Kamo
Comite
c4924af

Două remedieri aferente Serviciului Aplicat pentru Drepturile Membre, ambele în același fișier: 1. ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* șterse și reintroduse necondiționat fiecare dintre rândurile de drepturi aplicate ale unui membru, de fiecare dată au fugit. Serviciul de securitateDrepturiÎnapoiUmplereService solicită calea la scară largă pentru fiecare org pe Fiecare boot pod (un auto-vindecare, prin design o cizmă la starea de echilibru restabileşte setul identic. Măsurată în declarațiile pg stat producție: ~12.7M INSERTs împotriva unui ~30K-rând masă Toţi scriu exact ce era deja acolo. Ambele metode diff acum setul proaspăt compus împotriva a ceea ce membru drepturi aplicate deține deja (un vrac citit pentru o bucată întreagă) și numai clar + rescrie membrii ale căror drepturi de fapt Different. Un boot nu-op acum costă o citire și zero scrie. 2. calcularea drepturilor membrilor ( Miezul atât al căii de scriere de mai sus, cât și numai al citirii COMPuteMemberRights SesiuneReîmprospătareController sondaje pe fiecare reîmprospătare sesiune) mers membru.getRoles(), **************** roluri cu titlu de job() /get Rights() și membru.get Rights () ca colecții separate de leneș pentru drepturile proprii ale acestui rol. Fără restricții pentru fiecare membru. Șase noi câmpuri de depozit opționale (MemberRoleRepository, DepartmentRoleRepository, Department RightRepository, JobTitleRoleRepository, JobTitleRightRepository, Member RightRepository Întrebări, fiecare cu drepturile proprii ale unui rol reunit-FETCHed. Deliberat NU un @EntityGraph înrădăcinat la Membru/TeamMember: ambele sunt @Moștenire(JOINED) și un grafic al entității care aduce mai departe asocierile de pe o entitate asociată reprezintă forma exactă care a luat / conduce în jos în producție pe Hibernate 6.2.13 (lipsind de la intrarea din subclauza pentru tabelul de rădăcină Fiecare nou În schimb, depozitul este înrădăcinat în entitatea COPIL (dintre care niciunul nu poartă @ moștenire) și filtrat de ID-ul părintelui. O entitateManager câmp cu @PersistenceContext a fost încercat în primul rând și reverificat: este procesat de către Procesorul post-procesor JPA al primăverii ori de câte ori se află pe primavară, aşa că un nou-nouţ serviciu într-un context cu nici o entitateManagerFactory fasole (SignInReadRetry) Primavara rulata manual context, care exerciții @retryOnDbConflict printr-un proxy AOP real) a eșuat CREAREA BEAN Pur şi simplu. Câmpurile facultative de depozit degradează la fel cum a aplicat ModelRezolvator: @Autowired (necesar = fals) le lasă nule fără fasole de acest tip, și cele șase ajutoare cad înapoi la calea originală de leneș-sarcină, neschimbat, în fiecare test existent. SessionRefreshController menţine calculatorul live (nu din instantaneul persistat) întregul punct este "ceea ce este adevărat chiar acum," care nu este în mod explicit întotdeauna ceea ce a fost ultima persistat.

Toate modificările

Ca ceea ce vezi de transport maritim?

Toate acestea ajung în spațiul de lucru pe cont propriu. Începeți cu planul gratuit și citiți această pagină din nou într-o lună.

Pornește gratuit pentru totdeaunaVezi prețurile