Boa noite galera, tenho uma dúvida q está me afligindo em continuar a desenvolver uma aplicação.
Tenho uma aplicação q usa PRIMEFACES, JPA, SPRING e JSF2.0.
Qdo mudei para visualizar os selects(show_sql) que eram realizados, me assustei com a quantidade de selects eram realizados para mostrar um simples registro num datatable do primefaces. Alguem sabe me explicar se isso é normal e porque isso acontece, estou com receio disso causar uma pessíma performance no meu sistema futuramente.
Isso é normal…
Provavelmente um objeto seu contém outros, então o JPA vai atrás desses outros objetos. Você pode evitar um pouco isso, colocando FetchType.LAZY. Então, ele só dará select nesses outros objetos quando vc der um ‘get’.
Sem ver a aplicação rodando fica dificil da opinião, mas não descarte a a sugestão do amigo acima também
Pode acontecer do JSF chamar algum componente seu que tenha referência a esses beans mais de uma vez em mais de um ciclo de vida. Sugiro também que você faça um PhaseListener (ANY_PHASE) para ver quando as consultas ocorrem.