当前位置: 代码迷 >> J2EE >> Hibernate 使用 ehcache 缓存时,many-to-one 中的one为空,该如何解决
  详细解决方案

Hibernate 使用 ehcache 缓存时,many-to-one 中的one为空,该如何解决

热度:785   发布时间:2016-04-17 23:16:58.0
Hibernate 使用 ehcache 缓存时,many-to-one 中的one为空
在使用Hibernate4,ehcache 2.6时,对实体类进行缓存, 
实体类配置如下: 
   <class name="com.test.model.Info" table="info"> 
          <cache usage="read-write"/> 

many-to-one 配置: 

<many-to-one name="type" class="com.test.model.Type" 
column="type_id" lazy="false" insert="false" update="false" not-found="ignore"/> 

ehcache.xml配置如下: 
<cache name="com.test.model.Info" maxEntriesLocalHeap="100" 
eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="false" /> 


在列表页读取One中的数据,对新添加的Info,第二次刷新列表,One的属性为Null。 

是哪里不对吗?
------解决思路----------------------
many to one里加上outer-join="true" 看看
------解决思路----------------------
学习
------解决思路----------------------
刷新是不是又提交了一次?
------解决思路----------------------
引用:
刷新是使用list()方法又重新取了一次,不是重新提交。

你看一下 数据库 many提交完,one那边数据库是否真的入库? 还是走的数据库缓存并未实际意义提交。
------解决思路----------------------
如果光走的list   怀疑是事务导致了数据回滚
  相关解决方案