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

遗留世界中对Hibernate的需求

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

遗留世界中对Hibernate的需求

1)(…)这是真的吗?

不,不是的,Hibernate可以处理相当复杂的数据库,包括现有的数据库。但是,对于高度非规范化的数据库或奇异的架构,它可能无法很好地处理。这是不同的。

2)(…)我的问题是,为什么一个庞大而昂贵的项目不关心sql优化?

这是胡说八道,使用Hibernate并不意味着您不在乎优化。我已经在一个庞大而复杂的STP系统上工作(几亿欧元的预算),性能绝对是一个重要的问题,我们实际上引入了Hibernate来受益于诸如延迟加载,二级缓存(并加快开发)之类的事情。

这是使用像Hibernate这样的ORM时的交易(适当时):

  • 使用ORM会比不使用ORM更快地完成工作(否则将毫无意义地使用它们)。
  • 绝大多数生成的查询将正确运行(事实是Hibernate生成的SQL比普通开发人员 更好 )。
  • 您可以(必须)调优查询并在某种程度上hibernate。
  • 即使您花了一些时间进行性能优化(包括对真正有问题的查询使用本机SQL),也仍然可以更快地完成。

3)(…)因此,在这种情况下,二级缓存没有太大帮助。

好吧,您对以下事实是正确的:理想情况下,使用二级缓存意味着使用Hibernate
API(尽管您仍然可以“手动”退出缓存,尽管我倾向于将其用于“大多数已读取”实体)。但是,更重要的是,根据我的经验,通过数据库在许多应用程序之间共享数据只会导致应用程序无法维护(更改单个位变得不可能,因为这可能会影响多个应用程序),因此应避免。使用EAI
/ ESB并通过它公开主系统的服务。这样,您可以重用业务逻辑,第二级缓存等。

4)(…)Hibernate适用于哪种项目?是否适用于没有人关心sql的后台项目?

Hibernate对于CRUD应用程序确实非常好,但不仅如此(参见上文),而且您的问题显示出我已经说过的一些无知。但是,它不适合任何项目:

  • 我可能不会将其用于数据仓库或大型报表应用程序。
  • 我可能不会在高度规范化或异国情调的旧数据库中使用它(在这种情况下,像mybatis这样的数据映射器可能是更好的选择)。
  • 我可能不会在所有使用存储过程的现有系统上使用它。
  • 我不会在非RDBMS数据存储中使用它:)

5)(…)当您的管理员说:请使用memcached进行缓存,并使用此优化查询代替您的查询时,会发生什么?

我告诉他,memcached可能不是我们上下文中的最佳解决方案(不,我不想一直通过网络发送数据,而且我不在乎Facebook / LiveJournal /
Twitter /无论使用什么,我们的应用可能有不同的需求),与Hibernate合作时还有其他更好的缓存实现,我请他与我讨论 问题 ,并讨论各种
解决方案 ,等等。我们作为一个团队工作,而不是互相反对。

综上所述,ORM解决方案并不总是合适的,但我认为您当前有偏见,我的经验与您的问题中表达的观点(怀疑?)不同。

也可以看看

  • 何时不使用Java中的O / R映射


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

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

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