Revision 98b5b08d
Von Christian Ehringfeld vor fast 9 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