I tried to enable L2 caching for my entities, but I get a weird exception without any explanation of the reason.
I also found out the exact source code line that was causing the exception, and the code looks really weird, as it is just throwing an exception in this particular case:
http://grepcode.com/file/repo1.maven.org/maven2/org.avaje/ebean/2.7.5/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java#396What does the "embedded" boolean mean in that piece of code? And why is RuntimeException thrown if embedded is true?
The full stack trace was:
(The bean that is being accessed is behind a LAZY OneToMany mapping and caching was enabled for both beans.)
Caused by: java.lang.RuntimeException: null at com.avaje.ebeaninternal.server.deploy.BeanPropertyAssocOne.getCacheDataValue(BeanPropertyAssocOne.java:396) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.cache.CachedBeanDataFromBean.extract(CachedBeanDataFromBean.java:57) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.cache.CachedBeanDataFromBean.extract(CachedBeanDataFromBean.java:22) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.deploy.BeanDescriptor.cachePutBeanData(BeanDescriptor.java:1091) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.core.DefaultBeanLoader.loadBean(DefaultBeanLoader.java:382) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.core.DefaultServer.loadBean(DefaultServer.java:529) ~[ebean-2.7.5.jar:na] at com.avaje.ebeaninternal.server.loadcontext.DLoadBeanContext.loadBean(DLoadBeanContext.java:203) ~[ebean-2.7.5.jar:na] at com.avaje.ebean.bean.EntityBeanIntercept.loadBeanInternal(EntityBeanIntercept.java:531) ~[ebean-2.7.5.jar:na] at com.avaje.ebean.bean.EntityBeanIntercept.loadBean(EntityBeanIntercept.java:499) ~[ebean-2.7.5.jar:na] at com.avaje.ebean.bean.EntityBeanIntercept.preGetter(EntityBeanIntercept.java:625) ~[ebean-2.7.5.jar:na]