这是一个很好的休眠设计吗?

时间:2010-08-20 22:48:52

标签: java hibernate design-patterns single-table-inheritance

我在SINGLE_TABLE继承中有一个父实体服务和一个子 ExtendedService

第三个实体 ServiceCollector 需要包括entites Service和ExtendedService。这是一个固定的要求,通过这种设计,我可以使用多态实现它。

问题:我经常只需要检索父类服务,所以我通过鉴别器列查询...我认为这对我的purpouse来说是一个糟糕的设计,不是真的?

这是一个简单的例子,实际上我有很多服务子类,例如想到一个销售不同产品的商店,每个产品都可以有不同的属性。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果每个ExtendedService都无效作为对Service查询的响应,那么听起来更像是通过继承进行模板化,而不是多态性。一个简单的解决方法是使Service变为抽象,因此您有AbstractService和一个空类Service来扩展它并只定义DiscriminatorValue。 (然后ExtendedService扩展AbstractService等)

映射鉴别器列以查询它并不完全是世界末日,如果其他一切都适合您。就个人而言,我更多地将其归于“Inelegant”而不是“Bad Design”,但这只是意见。