2012-06-13 49 views
0

我在我的实体上有一个主键(整数),但我也在这些实体上有一个UUID,我在这些实体上进行大量搜索。我想知道是否有可能使该UUID成为关键,以便Hibernate(或其他)不必每次都从数据库获取实体,但可以首先检查其缓存吗?实体上的多个@Id字段/键

+0

休眠有两种不同类型的高速缓存,其可以是有益的。 L2(共享)缓存(由@Id键入)和查询缓存,它将缓存按值查找操作的查询结果。听起来这两个人一起工作可能会给你想要的东西。 – wrschneider

+0

啊,这就对了。有什么方法预先填充L2缓存吗?让我们说,如果所有的实体都被一个select查询获取,然后使用它们的uuid一个接一个地获取 - 我想消除那些一个一个的提取。 –

+0

你可能会春天吗?或者你会考虑使用它吗?因为Spring不像Hibernate那样通过主键来提供缓存机制,而是通过任何值提供缓存机制,所以你可以在这里指定你的UUID。 你也可以在Hibernate中实现自己的缓存机制,但这是重新发明轮子。 – JMelnik

回答