Olá.
Tenho um grave problema de performance na minha aplicação.
Não estou considerando o tempo de abrir a conexão. Ela é aberta uma vez, os objetos são criados e depois eu a fecho.
Acontece que tenho dois pacotes, um para negócio e outro para banco.
Uma classe tem como atributo outra classe. Esta tem como atributo, outras classes.
No contrutor da classe de negócio Atendimento, eu chamo o correspondente da classe de banco. Esta classe de banco chama o contrutor das classes Prestador e Procedimento, que são suas proprietades . Cada uma destas classes chama seu respectivo contrutor na classe de banco etc …
class Atendimento;
private int codigo;
private Internacao internacao;
...
class Internacao;
private int codigo;
private Prestador prestadorPrincipal;
private Prestador localDeAtendimento;
private Procedimento procedimentoRealizado;
....
Cada uma destas classes existe em ambas as camadas. Para cada classe, há um comando sql ( statement, resultset ). sendo que a conexão é static.
Esta forma de distribuição está, ao meu ver, criando um problema de performance. Meus colegas querem que eu faça um só select GRANDÃO, e a partir dai eu monta cada classe ??? Acho que ficaria ruim, mas talvez a performance fosse melhor.
Existe algum framework (uso o banco Caché, e não sei de nenhum dialeto específico para o Hibernate) que agilizasse todo este processamento? Spring ? Uma luz por favor. Meu relatório ( em PDF ) pode durar até sete horas !!! São mil médicos fazendo dezenas de procedimentos cada. Cada procedimento dura cerca de dois seguindos para ser construido.
Obrigadíssimo,
Márcio