3
如果我有對象類此方法:理解Hibernate的緩存
@OneToMany(fetch = FetchType.EAGER,
cascade = { CascadeType.ALL },
mappedBy = "object" )
@org.hibernate.annotations.Cascade(
{org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@Column(nullable = false )
public Set<ObjectEntry> getObjectEntries() {
return this.objectEntries;
}
,我把@cache
上都ObjectEntry
和Object
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Object extends HashCodeValidator {
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ObjectEntry extends HashCodeValidator
我還需要投入@cache像getObjectEntries此:
@org.hibernate.annotations.Cascade(
{org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@Column(nullable = false )
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public Set<ObjectEntry> getObjectEntries() {
return this.objectEntries;
}
是否需要定義e緩存每個查詢如果我專門添加
hibernate.cache.use_query_cache = true
?
還有一個問題。 爲什麼我需要緩存getObjectEntries的集合? 它是不是會放大內存太多? Hibernate可以保存一個引用到存在的對象,而不是引用所有的collecion? – Dejell 2010-07-08 13:18:01