Revision 98b5b08d
Von Christian Ehringfeld vor mehr als 10 Jahren hinzugefügt
| src/querybuilder.cpp | ||
|---|---|---|
|
secondEntity.data()->metaObject()->className()).toLower();
|
||
|
}
|
||
|
|
||
|
QString QueryBuilder::manyToManyTableName(const QSharedPointer<Entity>
|
||
|
&firstEntity, const QSharedPointer<Entity> &secondEntity,
|
||
|
const Relation &r) const {
|
||
|
QString table = "";
|
||
|
if (r.getMappedBy().isEmpty()) {
|
||
|
table = this->generateManyToManyTableName(firstEntity, secondEntity);
|
||
|
} else {
|
||
|
table = this->generateManyToManyTableName(secondEntity, firstEntity);
|
||
|
}
|
||
|
return table;
|
||
|
}
|
||
|
|
||
|
QHash<QString, QHash<QString, QString>> QueryBuilder::generateRelationTables(
|
||
|
const QSharedPointer<Entity> &entity)
|
||
|
const {
|
||
| ... | ... | |
|
const qint64 &id,
|
||
|
const QString &foreignKey, const QString &foreignTable) {
|
||
|
QSqlQuery q = this->database.data()->getQuery();
|
||
|
QString sql = "SELECT " + this->schema.data()->quoteTableName(
|
||
|
QString sql = "SELECT " +
|
||
|
this->schema.data()->quoteTableName(
|
||
|
foreignTable) + ".* FROM " +
|
||
|
this->schema.data()->quoteTableName(tableName) + " " + this->leftJoin(
|
||
|
foreignTable, tableName,
|
||
| ... | ... | |
|
return q;
|
||
|
}
|
||
|
|
||
|
QSqlQuery QueryBuilder::manyToManyDelete(const QString &tableName,
|
||
|
const QString &attribute, const qint64 &id) {
|
||
|
QSqlQuery q = this->database.data()->getQuery();
|
||
|
QString sql = "DELETE FROM " + this->schema.data()->quoteTableName(
|
||
|
tableName) + " WHERE " + this->schema.data()->quoteColumnName(
|
||
|
attribute) + "=:id";
|
||
|
q.prepare(sql);
|
||
|
q.bindValue(":id", id);
|
||
|
return q;
|
||
|
}
|
||
|
|
||
|
QSqlQuery QueryBuilder::manyToManyInsert(const QString &tableName,
|
||
|
const QString &col1, const QString &col2) const {
|
||
|
QSqlQuery q = this->database.data()->getQuery();
|
||
|
QString sql = "INSERT INTO " + this->schema.data()->quoteTableName(
|
||
|
tableName) + "(" + col1 + "," + col2 + ")"
|
||
|
+ "VALUES(?, ?);";
|
||
|
q.prepare(sql);
|
||
|
return q;
|
||
|
}
|
||
|
|
||
|
QString QueryBuilder::leftJoin(const QString &foreignTable,
|
||
|
const QString &tableName,
|
||
Auch abrufbar als: Unified diff
more many to many wip