【发布时间】:2016-06-03 06:53:49
【问题描述】:
比方说,我在 servlet 会话(或类似的)中缓存当前用户,并收到类似“获取当前用户的所有书籍”的请求。天真地,我会去的
hibernateSession
.createCriteria(Book.class)
.add(Restrictions.eq("user", currentUser))
.list();
这可行,但在更复杂的情况下(我现在无法重现),我得到了一个
TransientObjectException: object references an unsaved transient instance
所以我想,我应该以某种方式将当前用户附加到会话中。我试过了
currentUser = (User) session.merge(currentUser);
只是发现它发出了一个数据库查询,因此使缓存并不比只存储 id 更好。
这样的缓存能否高效完成?
【问题讨论】:
标签: java performance hibernate session caching