栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

休眠继承策略及其原因

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

休眠继承策略及其原因

hibernate 总会 返回持久实体的 实际 类型。如果您已存储“ MyClubUser”,它将以“ MyClubUser”的形式返回,而不会以“
User”的形式返回。原因很明确-如果Hibernate将“ MyClubUser”作为“用户”返回,而您再次坚持下去,则会丢失“
MyClubUser”中定义的所有其他属性。

为了做到这一点,Hibernate需要知道实际的类型是什么。对于

InheritanceType.JOINED
策略发现的唯一方法是检查 所有
在你的继承层次结构表(当然,在技术上它是等于或低于当前水平的所有表再加上目前的树枝高于目前水平的所有表)。因此,如果您具有类似以下的层次结构:

Root          /         Node1  Node2      /      Node11 Node12

并且您尝试从根目录中进行选择,Hibernate将对所有表进行外部联接。如果从Node1中选择,则Hibernate将在Node1和Root上进行内部联接,再在Node11和Node12上进行外部联接。Node2不会被触摸,因为它不是Node1的后代。

就外部连接开销而言-
是的,肯定有开销,但这就是您为连接策略付出的代价。您可以使用区分符来避免这种情况,但这有其自身的副作用。该开销是否显着取决于层次结构的深度和范围,索引以及许多其他事情。听取KLE的建议并进行介绍。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号