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};
|
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};
|
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(
|
||||||
append_join(sql::column{id, inverse_join_column}, sql::column{info->get().name(), pk->name()});
|
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>
|
template<class ContainerType>
|
||||||
|
|
@ -248,8 +257,14 @@ public:
|
||||||
|
|
||||||
const auto join_columns = join_column_collector_.collect<typename ContainerType::value_type::value_type>();
|
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(
|
||||||
append_join(sql::column{id, join_columns.join_column}, sql::column{info->get().name(), pk->name()});
|
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:
|
private:
|
||||||
|
|
@ -292,7 +307,10 @@ void session_query_builder::on_foreign_object(const char *id, Pointer &, const u
|
||||||
if (!pk) {
|
if (!pk) {
|
||||||
throw query_builder_exception{query_build_error::MissingPrimaryKey};
|
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 {
|
} else {
|
||||||
push(id);
|
push(id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue