Olá,
Gostaria de saber como fazer para melhorar a performance de um sistma com hibernate 3.1. Porque meu sistema está muito lento para executar os comandos de buscar, inserção e deleção no banco.
Não tenho experiência com hibernate, então estou utilizando lazy=“false” no mapeamentos em que preciso acessar os objetos relacionado ao objeto que estou buscando no banco. Isso é correto? Caso não, como eu faço para ter acesso aos objetos relacionados ao obj buscado?
segue meu um exemplo do mapeamento:
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.password">pos</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost/db_editor</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.default_schema">public</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
exemplo de um dos obj que preciso acessar outros obj relacionados:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 12/09/2006 16:26:22 by Hibernate Tools 3.2.0.beta6a -->
<hibernate-mapping>
<class name="br.com.pos.Historico" table="historico">
<composite-id name="identificador" class="br.com.pos.HistoricoId">
<key-property name="idHistorico" type="java.lang.Integer" column="id_historico" />
<key-many-to-one name="requisito" class="br.com.pos.Requisito" column="id_requisito" />
</composite-id>
<many-to-one name="prioridade" class="br.com.pos.Prioridade"
fetch="select" lazy="false">
<column name="id_prioridade" />
</many-to-one>
<many-to-one name="status" class="br.com.pos.Status" fetch="select" lazy="false">
<column name="id_status" />
</many-to-one>
<property name="parecerValidacao" type="string">
<column name="parecervalidacao" length="200" />
</property>
<property name="dataExclusao" type="date">
<column name="dataexclusao" length="4" />
</property>
<property name="descricao" type="string">
<column name="descricao" length="200" not-null="true" />
</property>
<property name="comentario" type="string">
<column name="comentario" length="200" not-null="true" />
</property>
<property name="revisao" type="java.lang.Integer">
<column name="revisao" length="5" not-null="true" />
</property>
<property name="dataRevisao" type="date">
<column name="datarevisao" length="4" not-null="true" />
</property>
<set name="meusHistoricoAutores" inverse="true" lazy="false">
<key>
<column name="id_historico" not-null="true" />
<column name="id_requisito" not-null="true" />
</key>
<one-to-many class="br.com.pos.HistoricoAutor" />
</set>
<!--
<array name="historicoAutores" inverse="true">
<key>
<column name="id_historico" not-null="true" />
<column name="id_requisito" not-null="true" />
</key>
<list-index column="id_historico,id_autor,id_requisito" />
<one-to-many class="br.com.pos.HistoricoAutor" />
</array>
-->
</class>
</hibernate-mapping>