小编Mee*_*ani的帖子

Hibernate Collection缓存:如何使用?

我有两个实体 Book 和 Author。本书有作者的集合。我使用二级缓存来保存 Book 实体及其作者。调试时,我可以看到putForExternalReadBook 实例和集合中的每个作者都在发生。但是当我find(Book.class, ISBN)再次调用方法时,它只为书使用缓存,而每次从数据库中检索作者的集合。每次作者集合都放在二级缓存中。请让我知道是否需要更改缓存访问策略以进行收集。我正在使用 Jboss 6.0 Infinispan 5. 和 postgres 9 DBMS。

这是我的代码

package bookentity.ejb;
Run Code Online (Sandbox Code Playgroud)

/* * 要更改此模板,请选择工具 | 模板 * 并在编辑器中打开模板。*/

import java.io.Serializable;
import java.util.ArrayList;
import javax.persistence.Cacheable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.ManyToMany;
import javax.persistence.JoinTable;
//import javax.persistence.JoinColumns;
import javax.persistence.JoinColumn;
import java.util.Collection;
import java.util.List;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
//import javax.persistence.inv
import javax.persistence.OneToMany;



@Entity
@Cacheable
@Table(name = "BOOK")
@NamedQueries({@NamedQuery(name="findBookByAuthorName",query="SELECT b FROM Book b,            Author a …
Run Code Online (Sandbox Code Playgroud)

collections hibernate second-level-cache infinispan

5
推荐指数
1
解决办法
6430
查看次数