Boa tarde,
Bom estou a fazer uma simples consulta ao banco de dados quando um usuário digita algo em um campo de pesquisa, mais toda vez que o usuário digita do 15º caractere a aplicação trava, e não consigo descobrir o por que, por isso estou recorrendo a vocês.
Vou colocar um Hibernate.cfg.xml para ajudar:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="connection.url">jdbc:firebirdsql:localhost/3050:c:\projeto2\bd\SISAF2000.GDB</property>
<property name="connection.username">SYSDBA</property>
<property name="connection.password">masterkey</property>
<property name="dialect">org.hibernate.dialect.FirebirdDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Condiguração do c3p0 -->
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- Configurações de debug -->
<property name="format_sql">true</property>
<property name="hibernate.generate_statistics">true</property>
<property name="hibernate.use_sql_comments">true</property>
<!-- Mapeamento das classes persistidas no sistema -->
<mapping class="br.com.pj.projeto2.model.Cliente"/>
</session-factory>
</hibernate-configuration>
E a consulta é da seguinte forma:
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(Cliente.class);
Disjunction ou = Restrictions.disjunction();
ou.add(Restrictions.ilike("nome", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("endereco", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("bairro", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("email", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("contato", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("cidade", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("estado", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("profissao", valor.toLowerCase(), MatchMode.ANYWHERE))
.add(Restrictions.ilike("empresa", valor.toLowerCase(), MatchMode.ANYWHERE));
List<Cliente> lista = criteria.add(ou).list();