fixed join columns
This commit is contained in:
parent
2e5257a5fa
commit
81cd8eecb2
|
|
@ -198,7 +198,10 @@ public:
|
|||
throw query_builder_exception{query_build_error::MissingPrimaryKey};
|
||||
}
|
||||
|
||||
append_join(sql::column{table_info_stack_.top().get().name(), table_info_stack_.top().get().definition().primary_key()->name()}, sql::column{info->get().name(), join_column});
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(table_info_stack_.top().get().name()), table_info_stack_.top().get().definition().primary_key()->name()},
|
||||
sql::column{std::make_shared<sql::table>(info->get().name()), join_column}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -222,8 +225,14 @@ public:
|
|||
throw query_builder_exception{query_build_error::MissingPrimaryKey};
|
||||
}
|
||||
|
||||
append_join(sql::column{table_info_stack_.top().get().name(), table_info_stack_.top().get().definition().primary_key()->name()}, {id, join_column});
|
||||
append_join(sql::column{id, inverse_join_column}, sql::column{info->get().name(), pk->name()});
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(table_info_stack_.top().get().name()), table_info_stack_.top().get().definition().primary_key()->name()},
|
||||
sql::column{std::make_shared<sql::table>(id), join_column}
|
||||
);
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(id), inverse_join_column},
|
||||
sql::column{std::make_shared<sql::table>(info->get().name()), pk->name()}
|
||||
);
|
||||
}
|
||||
|
||||
template<class ContainerType>
|
||||
|
|
@ -248,8 +257,14 @@ public:
|
|||
|
||||
const auto join_columns = join_column_collector_.collect<typename ContainerType::value_type::value_type>();
|
||||
|
||||
append_join(sql::column{table_info_stack_.top().get().name(), table_info_stack_.top().get().definition().primary_key()->name()}, sql::column{id, join_columns.inverse_join_column});
|
||||
append_join(sql::column{id, join_columns.join_column}, sql::column{info->get().name(), pk->name()});
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(table_info_stack_.top().get().name()), table_info_stack_.top().get().definition().primary_key()->name()},
|
||||
sql::column{std::make_shared<sql::table>(id), join_columns.inverse_join_column}
|
||||
);
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(id), join_columns.join_column},
|
||||
sql::column{std::make_shared<sql::table>(info->get().name()), pk->name()}
|
||||
);
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
@ -292,7 +307,10 @@ void session_query_builder::on_foreign_object(const char *id, Pointer &, const u
|
|||
if (!pk) {
|
||||
throw query_builder_exception{query_build_error::MissingPrimaryKey};
|
||||
}
|
||||
append_join(sql::column{table_info_stack_.top().get().name(), id}, sql::column{info->get().name(), pk->name()});
|
||||
append_join(
|
||||
sql::column{std::make_shared<sql::table>(table_info_stack_.top().get().name()), id},
|
||||
sql::column{std::make_shared<sql::table>(info->get().name()), pk->name()}
|
||||
);
|
||||
} else {
|
||||
push(id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue