在Hibernate中的集合中插入新项目->;Ehcache条目将完全变为空
我有一个容器类型,包含一个项目集合,还有一个带容器引用的tiem 对于我的问题,关系的哪一方管理持久性,收集方还是引用方并不重要在Hibernate中的集合中插入新项目->;Ehcache条目将完全变为空,hibernate,ehcache,Hibernate,Ehcache,我有一个容器类型,包含一个项目集合,还有一个带容器引用的tiem 对于我的问题,关系的哪一方管理持久性,收集方还是引用方并不重要 Container c=new Container(12L); Item i=new Item(1L); Item i2=new Item(2L); i.setContainer(c); c.addItem(i); i2.setContainer(c); c.addItem(i2); session.save(c); session.save(i); sessio
Container c=new Container(12L);
Item i=new Item(1L);
Item i2=new Item(2L);
i.setContainer(c);
c.addItem(i);
i2.setContainer(c);
c.addItem(i2);
session.save(c);
session.save(i);
session.save(i2);
tx.commit();
然后在一个新的会话中,我迭代该集合,该集合将位于Ehcache中,如[1L,2L]
c=session.get(Container.class,12L);
Set<Item>items=c.getItems();
Iterator<Item>iterator=items.iterator();
在数据库中,将在items表中插入一个新行,并在container表中插入一个外键,这样就可以了
但是在Ehcache中[1L,2L]被删除,en没有添加新值,因此Ehcache条目为空
我做错了什么
以下是我到Hibernate文件的映射:
<class
name="Container"
>
<cache
usage="read-write"/>
<id
name="id"
column="id__"
>
<set
name="items"
inverse="true"
>
<cache usage="read-write"/>
<key
column="container_"
not-null="true"
></key>
<one-to-many class="Item"/>
</set>
</class>
<class
name="Item"
>
<cache
usage="read-write"/>
<id
name="id"
column="id_"
>
<many-to-one
name="container"
column="container_"
not-null="false"
>
</many-to-one>
</class>
如果使用注释,则显示域类。如果使用xml定义关系,则显示xml文件添加Hibernate映射文件。
<class
name="Container"
>
<cache
usage="read-write"/>
<id
name="id"
column="id__"
>
<set
name="items"
inverse="true"
>
<cache usage="read-write"/>
<key
column="container_"
not-null="true"
></key>
<one-to-many class="Item"/>
</set>
</class>
<class
name="Item"
>
<cache
usage="read-write"/>
<id
name="id"
column="id_"
>
<many-to-one
name="container"
column="container_"
not-null="false"
>
</many-to-one>
</class>