Boa tarde,
Recentemente começei a trabalhar com o hibernate 2x e quanto a construção e implementação de seu framework, não tive problemas. Porém, estou tendo sérios problemas de performance devido a instanciação de objetos que possuem relacionamentos do tipo:
<class name="Usuario" table="Tabela_Usuario">
.
.
.
<set name="conteudosByAlteradoPor" lazy="true" inverse="true" cascade="none" >
<key>
<column name="alteradoPor" />
</key>
<one-to-many class="Conteudo"/>
</set>
<!-- bi-directional one-to-many association to Tabela_Conteudo -->
<set name="conteudosByAutor" lazy="true" inverse="true">
<key>
<column name="autor" />
</key>
<one-to-many class="Conteudo"/>
</set>
<!-- bi-directional one-to-many association to Tabela_Conteudo -->
<set name="conteudosByCriadoPor" lazy="true" inverse="true">
<key>
<column name="criadoPor" />
</key>
<one-to-many class="Conteudo"/>
</set>
.
.
.
</class>
Onde, ao realizar a consulta:
public Usuario getUsuarioByLogin(String login) throws DAOException {
try {
Usuario usrRet = (Usuario) session.createCriteria(Usuario.class).add(Expression.eq("login", login)).add(
Expression.eq("deletado", Boolean.FALSE)).uniqueResult();
return usrRet;
} catch (HibernateException e) {
e.printStackTrace();
throw new DAOException(e);
}
}
aqueles atributos acima mapeados no xml, são populados.
Quando eu seto lazy="true" não seria esperado que tais atributos não fossem populados? pois bem, ao acompanha-lo no debug mode da minha IDE, vejo que logo após a execução da consulta, ele é populado.
Gostaria de saber se existe algum erro na configuração ou código pois isso esta afetando a performance da aplicação.
obrigado