我在SINGLE_TABLE继承中有一个父实体服务和一个子 ExtendedService 。
第三个实体 ServiceCollector 需要包括entites Service和ExtendedService。这是一个固定的要求,通过这种设计,我可以使用多态实现它。
问题:我经常只需要检索父类服务,所以我通过鉴别器列查询...我认为这对我的purpouse来说是一个糟糕的设计,不是真的?
这是一个简单的例子,实际上我有很多服务子类,例如想到一个销售不同产品的商店,每个产品都可以有不同的属性。
提前致谢。
答案 0 :(得分:1)
如果每个ExtendedService都无效作为对Service查询的响应,那么听起来更像是通过继承进行模板化,而不是多态性。一个简单的解决方法是使Service变为抽象,因此您有AbstractService
和一个空类Service
来扩展它并只定义DiscriminatorValue
。 (然后ExtendedService扩展AbstractService等)
映射鉴别器列以查询它并不完全是世界末日,如果其他一切都适合您。就个人而言,我更多地将其归于“Inelegant”而不是“Bad Design”,但这只是意见。