Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c6e41b5c

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID c6e41b5c5dbddc4e194143856f1f7e0cbc8a74e5
  • Vorgänger 77cccf8a
  • Nachfolger 2316d17f

wip

Unterschiede anzeigen:

src/query.cpp
return qb->like(conditions, conjunction, jp, wildcard);
}
QVariant Query::convertParam(QVariant &val) {
if(QString(val.typeName()).contains("QSharedPointer")) {
auto entity = EntityInstanceFactory::castQVariant(val);
if(entity && entity->getId() != -1) {
return entity->getProperty(entity->getPrimaryKey());
QVariant Query::convertParam(const QVariant val) {
auto typeName = QString(val.typeName());
QVariant r = val;
if(typeName.contains("QSharedPointer")) {
if(typeName.contains("QList")) {
auto entities = EntityInstanceFactory::castQVariantList(r);
QList<QVariant> ids;
for (int i = 0; i < entities.size(); ++i) {
if(entities.at(i)) {
ids.append(entities.at(i)->getProperty(entities.at(i)->getPrimaryKey()));
}
}
r.setValue<QList<QVariant>>(ids);
} else {
auto entity = EntityInstanceFactory::castQVariant(r);
if(entity && entity->getId() != -1) {
r = entity->getProperty(entity->getPrimaryKey());
}
}
}
return val;
return r;
}
QString Query::getSelectOption() const {
......
}
void Query::appendParam(const QString &column, QVariant value) {
this->params.insert(column, value);
this->params.insert(column, this->convertParam(value));
}
void Query::appendParams(const QHash<QString, QVariant> &params) {
for (auto i = params.constBegin(); i != params.constEnd(); ++i) {
this->params.insert(i.key(), i.value());
this->params.insert(i.key(), this->convertParam(i.value()));
}
}

Auch abrufbar als: Unified diff