![]() |
1
7
我已经将继承与Hibernate(还有一些与Django)结合使用,并对此深表遗憾。 “组合优先于继承”原则对于域类尤其适用。虽然我同意在一些情况下继承在模型级别上是有意义的,但在大多数情况下继承将提供一个非常静态的域模型,其中一个对象将无法更改为另一个类。 我还发现,大多数开发人员对数据库级别的继承概念并不熟悉,因此维护变得更加复杂。 最后,还有一些技术问题,比如Hibernate放置的代理将隐藏对象的实际类。它使“实例”的行为变得僵硬。当然,您可能会说“的实例”是一种代码味道,这可能是另一个提示,说明组合可能是更好的解决方案。。。 |
![]() |
2
5
|
![]() |
3
3
如果您指的是域类中的继承,我一直在使用NHibernate和/或Castle ActiveRecord,它们支持三种映射策略: |
![]() |
4
1
如果您正在编写复杂的业务软件,您需要它。 比如说,你想把东西卖给个人或组织。在销售订单上,买方可能是其中之一。没有继承权你怎么做?
然后你可以做:
|
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Chance · 根据Sequelize中的字段拉入特定记录/行 3 年前 |
![]() |
lambchop01 · GORM如何为相似实体之间的关系建模 3 年前 |
![]() |
Shale · 如何将此查询更改为ORM? 3 年前 |
![]() |
Daniel Morales · 替换mongo DB中的嵌入字段 3 年前 |
![]() |
Vinay P · NodeJS和ORM? 7 年前 |
![]() |
MadDoctor5813 · 在Django模型中创建“简单”字典? 7 年前 |