Galera, estou com problemas ao tentar habilitar um cache do Hibernate 3.3 com o Spring:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocations">
<list>
<value>classpath:/hibernate.cfg.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=${hibernate.connection.dialeto}
hibernate.query.substitutions=true 'Y', false 'N'
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=true
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.EhCacheRegionFactory
hibernate.connection.lc_ctype=ISO8859_1
hibernate.show.sql = true
hibernate.format.sql = true
</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager" >
<property name="sessionFactory" ref="sessionFactory" />
</bean>
Coloquei a lib ehcache-core-2.4.2 no classpath
E ao debugar o erro ocorre na linha que chama o cache:
q.setCacheable(true);
E o arquivo ecache.xml esta criado na raiz do classpath.
E ocorre o seguinte erro:
java.lang.ArrayIndexOutOfBoundsException: 0
org.hibernate.type.TypeFactory.disassemble(TypeFactory.java:474)
org.hibernate.cache.StandardQueryCache.put(StandardQueryCache.java:104)
org.hibernate.loader.Loader.putResultInQueryCache(Loader.java:2208)
org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2159)
org.hibernate.loader.Loader.list(Loader.java:2117)
org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1722)
org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
br.com.xx.yyy.projeto.dao.impl.ProjetoDAOImpl.listUltimosProjetosByIdUsuario(ProjetoDAOImpl.java:1356)
br.com.xx.yyy.projeto.service.impl.ProjetoServiceImpl.listUltimasCampanhas(ProjetoServiceImpl.java:2504)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)