xly_971223 2008-11-10 16:17
浏览 324
已采纳

hibernate 一对多时二级缓存不起作用

hibernate配置了二级缓存和查询缓存,在查询Problem实体时走缓存,但是getAnswers()时却不走缓存(能输出hql语句),也许有配置的地方 也许没有
请熟悉缓存配置的帮忙
[code="java"]@Entity
@Table(name="ask_problem")
@Searchable(alias = "problem")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Problem implements Serializable{
//省略属性和getter setter

@OneToMany(mappedBy="problem", cascade = { CascadeType.REMOVE })
@OrderBy("right DESC, answerTime ASC")
public Set<Answer> getAnswers() {
    return answers;
}
public void setAnswers(Set<Answer> answers) {
    this.answers = answers;
}

}[/code]
[b]问题补充:[/b]
这个问题已经找到答案 如下配置
[code="java"]@OneToMany(mappedBy="problem", cascade = { CascadeType.REMOVE })
@OrderBy("right DESC, answerTime ASC")
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) //添加这句就ok了
public Set getAnswers() {
return answers;
}[/code]

  • 写回答

3条回答 默认 最新

  • catstiger 2008-11-10 16:25
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?