是否有人真的想要并使用ORM工具上的继承支持,如果是的话,您认为哪一种支持最好?
或者ORM继承是一个“天上的馅饼”的概念?
发布于 2009-02-27 14:34:59
我非常喜欢这个问题。我使用ORM工具(Toplink,现在是eclipselink,Hibernate)已经有一段时间了,我一直认为这是JPA文档中引用的,但我从来没有真正需要它。基本上,我的哲学是ORM只是为了防止您编写tedius代码来提取数据库的记录。这确实是一个巨大的时间节省,它可以防止你犯愚蠢的错误。当然,您可以用它做一些奇妙的事情,但是为什么不把它保存在控制器上(如果您遵循MVC),而不把它放在模型中呢?
发布于 2009-02-27 14:48:38
我在Hibernate中使用了继承(有些与Django一起使用),并且对它进行了很深的修改。
“组合高于继承”原则尤其适用于域类。虽然我同意在某些情况下继承在模型级别是有意义的,但在大多数情况下,继承会给您提供一个非常静态的域模型,其中一个对象将无法更改为另一个类。
我还发现,大多数开发人员不适应数据库级继承的概念,因此维护变得更加复杂。
最后,还有一些技术问题,比如Hibernate设置的代理将隐藏对象的actuall类。它使“实例”表现得目瞪口呆。当然,您可能会说“实例”是一种代码气味,也许这是另一个提示,表明组合可能是更好的解决方案.
发布于 2009-02-27 14:32:46
如果您指的是域类中的继承,那么我总是在NHibernate和/或ActiveRecord中使用它,它们支持三种映射策略:
https://stackoverflow.com/questions/594961
复制相似问题