- Enviado
- 23 de septiembre de 2026 a las 14:39 UTC
- Autor
- Kamo
- Commit
- 3677d12
encontrarById() en LeadVendorProduct tira de su proveedor predeterminado-EAGER, que en sí mismo ansioso propia org Y su mercado (que ansioso-fetches ITS org de nuevo) - y Organización es @Inheritance(JOINED), por lo que cada uno de esos tubos también fuera del trabajo ORG MTG para resolver el subtipo polimorfo. Medido en producción pg stat statements: un ensamblaje de 8 vías, ~780K llamadas a 10-21ms (~3 horas de duración acumulativa de la BD), casi completamente de búsquedas de un solo vehículo (`donde id=$1`), no de un N+1 de escalable: cada llamada ya tiene una id y lee en la mayoría de los proveedores + sus propios campos de escalar. Añade dos lean LeadVendorProductRepository métodos y cambia cada encuentraById() caller in kamo-shared-library + servicio de seguridad al que coincide con lo que realmente lee: - findIsEmptyCreditFfaById: una proyección JPQL escalar, no se une en absoluto. - findByIdWithVendor: an @EntityGraph limited to `vendor` (a plain, non-JOINED entity) — vendor.org y el vendedor.mercado volver como proxies ininicializados cuyo id todavía es legible sin extra consulta, que es todos los cheques de propiedad de org en estos callers siempre necesarios. Deliberadamente NO es un @EntityGraph en vendor.org o vendedor.market.organization: ambos son Organization, and an entity graph that fetches further associations off a JOINED-inheritance entity es la forma exacta que tomó /leads en la producción en Hibernate 6.2.13 (perdiendo DESDE-clause entrada para la tabla de raíz - ver LeadAssigneeRef). Los dos que realmente necesitan el mercado organización Carga LeadMarket como segundo, consulta ordinaria en su lugar — la misma división que esta base de código ya utiliza para TeamMember. Las formas JSON no cambian; sólo las columnas se leen de la base de datos cambian.
