在Hibernate中,自然键通常用于查找。在大多数情况下,您将拥有一个自动生成的代理ID。但是,此ID对于查找而言毫无用处,因为您将始终通过名称,社会保险号或其他来自现实世界的字段进行查询。
在使用Hibernate的缓存功能时,这一区别非常重要:如果缓存是由您的主键(代理ID)索引的,则查找不会获得任何性能提升。这就是为什么您可以定义一组要使用自然ID查询数据库的字段的原因。然后,Hibernate可以通过您的自然键为数据建立索引并提高查找性能。
有关更详细的说明,请参见这篇出色的博客文章;有关Hibernate映射文件的示例,请参见RedHat页面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)