fixed session::update implementation
This commit is contained in:
parent
399fa9a157
commit
1cda78412b
|
|
@ -63,7 +63,7 @@ public:
|
|||
template<typename Type>
|
||||
static void on_attribute(const char * /*id*/, Type &/*obj*/, const utils::field_attributes &/*attr*/ = utils::null_attributes) {}
|
||||
template<class Pointer>
|
||||
void on_belongs_to(const char *id, Pointer &obj, const utils::foreign_attributes &attr) {
|
||||
void on_belongs_to(const char *id, Pointer &/*obj*/, const utils::foreign_attributes &/*attr*/) {
|
||||
const auto it = statements_per_column_.find(id);
|
||||
if (it == statements_per_column_.end()) {
|
||||
return;
|
||||
|
|
@ -72,7 +72,7 @@ public:
|
|||
|
||||
}
|
||||
template<class Pointer>
|
||||
void on_has_one(const char *id, Pointer &obj, const utils::foreign_attributes &attr) {
|
||||
void on_has_one(const char * /*id*/, Pointer &/*obj*/, const utils::foreign_attributes &/*attr*/) {
|
||||
|
||||
}
|
||||
template<class ContainerType>
|
||||
|
|
@ -194,18 +194,20 @@ utils::result<object::object_ptr<Type>, utils::error> session::update( const obj
|
|||
if (!info) {
|
||||
return utils::failure(info.err());
|
||||
}
|
||||
using namespace matador::utils;
|
||||
using namespace matador::query;
|
||||
|
||||
const auto col = sql::column(info->get()->prototype().primary_key()->name());
|
||||
auto res = query::query::update(info->get().name())
|
||||
const auto col = sql::column(info.value().get().definition().primary_key()->name());
|
||||
auto res = matador::query::query::update(info->get().name())
|
||||
.set(*obj)
|
||||
.where(col == utils::_)
|
||||
.where(col == _)
|
||||
.prepare(*this);
|
||||
if (!res) {
|
||||
return utils::failure(res.err());
|
||||
}
|
||||
|
||||
if (const auto insert_result = res->bind(*obj).execute(); !insert_result.is_ok()) {
|
||||
return utils::failure(insert_result.err());
|
||||
if (const auto update_result = res->bind(*obj).execute(); !update_result.is_ok()) {
|
||||
return utils::failure(update_result.err());
|
||||
}
|
||||
return utils::ok(object::object_ptr{obj});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue