public function withTypeInColumn(string $columnName, $classTypeValue): SubClassDefinitionDefiner
    {
        return new SubClassDefinitionDefiner(
            $this->orm,
            $this->parentDefinition,
            function (MapperDefinition $subClassDefinition) use ($columnName, $classTypeValue) {
                foreach ($subClassDefinition->getColumns() as $column) {
                    $this->parentDefinition->addColumn($column->asNullable());
                }
                $subClassDefinition->setColumns($this->parentDefinition->getColumns());

                call_user_func(
                    $this->callback,
                    function (Table $parentTable) use ($subClassDefinition, $columnName, $classTypeValue) {
                        $finalizedSubClassDefinition = $subClassDefinition->finalize($parentTable->getName());

                        return new EmbeddedSubClassObjectMapping(
                            $parentTable,
                            $finalizedSubClassDefinition,
                            $columnName,
                            $classTypeValue
                        );
                    },
                    $subClassDefinition
                );
            }
        );
    }