Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy my 2nd level cache implementation runs into error?
    text
    copied!<p>I am trying to implement second-level cache on my application, but it returns following error. I am suspicious to the setCacheMode.</p> <p><strong>Hibernate.cfg.xml</strong></p> <pre><code> ... &lt;property name="cache.provider_class"&gt; org.hibernate.cache.EhCacheProvider &lt;/property&gt; &lt;property name="hibernate.cache.use_query_cache"&gt;true&lt;/property&gt; ... </code></pre> <p><strong>Product.Java</strong></p> <pre><code>public class Product implements Serializable { ... @Id @GeneratedValue @Column(name = "id") @Cache(usage= CacheConcurrencyStrategy.READ_ONLY) public long getID() { return ID; } ... } </code></pre> <p><strong>Model.Java</strong></p> <pre><code>.... final Session session = HibernateUtil.getSession(); try { final Transaction tx = session.beginTransaction(); try { Product product = (Product) session.get(Product.class, id); session.setCacheMode(CacheMode.NORMAL); tx.commit(); return product; } catch (Exception e) { tx.rollback(); e.printStackTrace(); } } finally { HibernateUtil.closeSession(); } ..... </code></pre> <p><strong>Error</strong></p> <pre><code>INFO: ** Exception in SessionFactory ** SEVERE: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:186) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:150) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at org.hibernate.internal.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:264) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760) at com.my.util.HibernateUtil.configureSessionFactory(HibernateUtil.java:26) at com.my.util.HibernateUtil.&lt;clinit&gt;(HibernateUtil.java:43) at com.my.controller.Default.execute(Default.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:446) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:285) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) at ..... </code></pre> <p><strong>Util</strong></p> <pre><code> private static SessionFactory configureSessionFactory() { try { Configuration configuration = new Configuration(); configuration.configure(); serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); return sessionFactory; } catch (HibernateException e) { System.out.append("** Exception in SessionFactory **"); e.printStackTrace(); } return sessionFactory; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload