gpt4 book ai didi

nhibernate - 您是否将NHibernate用于具有遗留数据库的项目,而遗留数据库是部分无法控制的?

转载 作者:行者123 更新时间:2023-12-03 16:18:59 25 4
gpt4 key购买 nike

对我来说,当前的答案是:不,我会使用iBatis,因为当数据库模型和对象模型不同步时,NHibernate会很痛苦。如果我不能完全控制数据库,那末我会做很多工作。

我为什么要问?

好吧,首先:我从未使用过NHibernate。我只是从表面上知道。我已经阅读了iBatis对于遗留数据库的优势。

第二:最近,我与使用Hibernate的人进行了讨论(Jep,在Hibernate之前没有'N')。他告诉我,ORM框架现在已经相当先进,并提倡使用Hibernate。由于我对NHibernate不感兴趣,所以我没有跟踪最新的发展。

也许我该重新考虑我的答案了吗?

最佳答案

iBatis当然很容易将对象映射到旧数据库系统。

最近,NHibernate 1.2和2.0具有一些功能集,可能使您重​​新考虑iBatis。

NHibernate使用复合键,这种键经常出现在较旧的数据库中,使用它们并不总是很愉快,但是对此却提供了支持。

NHibernate可以利用存储过程对实体进行CRUD操作,也可以对数据库 View 进行CRUD操作。

集合可以是自定义存储过程或SQL查询。当外键关系不直接映射到另一侧的主键时,集合可以使用property-ref属性。

其中某些功能可能会失去nhibernate的性能/功能,即,使用property-ref进行延迟加载不起作用(完全吗?),但是在大多数情况下,这是有原因的

其他要点:(与您的旧数据库并没有真正的关系,但是仍然可以帮助您确定技术选择)

Nhibernate社区似乎比iBatis更加丰富。我名列前茅,与iBatis组相比,对NHibernate的支持量非常大。因此,支持应该更容易。

同样,用于NHibernate的contrib/3rd party工具也越来越多。诸如NHibernate Profiler,Nhibernate查询分析器,NHibernate Contrib,Fluent NHibernate之类的东西。

也许您可以扩展您认为iBatis当前具有的优势。 NHibernate最近肯定很活跃,并获得了许多新功能,其中许多功能确实有助于遗留/难以修改架构。

为了回答这个问题,是的,我们确实将NHibernate与具有可怕关系,复合键,断开关系的遗留数据库一起使用。我们仍然有少量基于iBatis的代码。不过,我们不再编写任何iBatis代码。

关于nhibernate - 您是否将NHibernate用于具有遗留数据库的项目,而遗留数据库是部分无法控制的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com