我发现了一个如何使用类映射进行单表继承的示例。在
http://docs.sqlalchemy.org/en/latest/orm/inheritance.html#single-table-inheritance
但是在我的一生中,我找不到一个例子来说明如何使用经典的mapper来实现这一点,这样我就可以将类和持久映射分开。在
如何将此示例转换为经典映射?我很清楚如何创建表,只是不知道如何实际构造映射器。在
在本例中,定义了以下类型:
class Employee(Base):
class Manager(Employee):
class Engineer(Employee):
假设我已经创建了适当的表:
^{pr2}$如何为映射器编写代码,以便管理器和工程师都住在同一个表中(单表继承),并按类型(“经理”、“工程师”或其他雇员)区分?在
谢谢。在
手动映射类继承层次结构很费劲,我不建议这样做,但这里是这样。从定义表开始。由于使用单表继承,它必须包括所有必需的列:
纯Python类:
^{pr2}$以及经典映射:
请注意,您必须如何在每个映射器中手动限制映射的属性,这将很难在较大的层次结构中进行维护。当使用声明式时,所有这些都是为您处理的。在
相关问题 更多 >
编程相关推荐