resolve has one progress

This commit is contained in:
2026-05-17 21:46:43 +02:00
parent 57703dfb67
commit 9f54716df2
16 changed files with 86 additions and 46 deletions
@@ -130,16 +130,16 @@ void query_result_impl::on_belongs_to(const char*, Pointer& x, const utils::fore
template <class PointerType>
void query_result_impl::on_has_one(const char*, object::object_ptr<PointerType>& x, const char *join_column, const utils::foreign_attributes& attr) {
const auto resolver = resolver_->collection_resolver<PointerType>(result_type_, join_column);
const auto resolver = resolver_->joined_object_resolver<PointerType>(result_type_, join_column);
if (attr.fetch() == utils::fetch_type::Lazy) {
x = object::object_ptr<PointerType>(std::make_shared<object::object_proxy<PointerType>>(resolver, id_reader_.read(x, column_index_++)));
x.reset(std::make_shared<object::object_proxy<PointerType>>(resolver, utils::identifier{}));
} else {
auto obj = std::make_shared<PointerType>();
const auto ti = std::type_index(typeid(*x));
type_stack_.push(ti);
access::process(*this, *obj);
type_stack_.pop();
x = object::object_ptr<PointerType>(std::make_shared<object::object_proxy<PointerType>>(resolver, obj));
x.reset(std::make_shared<object::object_proxy<PointerType>>(resolver, obj));
}
}