Hibernate lento na segunda consulta

Olá!
Eu antes de colocar esta dúvida, eu dei uma pesquisada no forum, mas não achei exatamente ó que procurava e decidi postar.

Eu estou fazendo uma combo dinamica, que qdo clico em um campus, ele me devolve na outra combo os blocos.

No meu primeiro clique na primeira combo ele lista certinho os blocos na segunda combo. Qdo eu clico de novo na primeira combo demora mtoooooo, e nem retorna nada.

Vide código das classes:

@Entity
public class Campus implements Serializable{
	@Id
	@Column(name="codcampus")
	private String codCampus;
	
	@Column(name="nomecampus")
	private String nomeCampus;
//omitidos gets e sets
@Entity
public class Bloco implements Serializable{
       @EmbeddedId
        private BlocoPK id;
		
        @ManyToOne (fetch=FetchType.LAZY,cascade={CascadeType.ALL}) 
	@JoinColumn(name="codcampus",insertable=false,updatable=false)
         private Campus campus;								
         
        @Column(name="codbloco",insertable=false,updatable=false)
        private String codBloco;
        //omitidos getts e sets        
@Embeddable
public class BlocoPK implements Serializable{
	@Column(name="codcampus")
	private String codCampus;
	@Column(name="codbloco")
	private String codBloco;
//gets e sets omitidos
<?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="hibernate.connection.driver_class">
			oracle.jdbc.driver.OracleDriver
		</property>
		<property name="hibernate.connection.url">	
			jdbc:oracle:thin:@meuip:1521:ORACLE
		</property>
		<property name="hibernate.dialect">
			org.hibernate.dialect.OracleDialect
		</property>
		<property name="hibernate.connection.username">
			ROOT
		</property>
		<property name="hibernate.connection.password"> 
		                SENHA
		</property>	
		
		<property name="hibernate.c3p0.min_size">
			5
		</property>
		
		<property name="hibernate.c3p0.max_size">
			20
		</property>
		
		<property name="hibernate.show_sql">
			true
		</property>
		<property name="hibernate.format_sql">
			true
		</property>
							
		<mapping class="br.unig.scif.modelo.Campus"/>
		<mapping class="br.unig.scif.modelo.Bloco"/>
		<mapping class="br.unig.scif.modelo.Pavimento"/>
		<mapping class="br.unig.scif.modelo.Andar"/>
		<mapping class="br.unig.scif.modelo.Sala"/>
		<mapping class="br.unig.scif.modelo.TipoSala"/>	
	</session-factory>
</hibernate-configuration>	

A query:

public List procuraBlocoporCampus (Campus campus){
		return this.session.createQuery("from Bloco where codcampus = :codcampus")
			.setParameter("codcampus", campus.getCodCampus())
			.list();
	}

Se alguem puder me ajudar…