Revision 35cf13b7
Von Christian Ehringfeld vor mehr als 10 Jahren hinzugefügt
| src/database.cpp | ||
|---|---|---|
|
}
|
||
|
}
|
||
|
|
||
|
QSharedPointer<Schema> Database::getSchema(int db,
|
||
|
QSharedPointer<Schema> Database::getSchema(DatabaseType db,
|
||
|
QSharedPointer<Database> database) {
|
||
|
switch (db) {
|
||
|
case SQLITE:
|
||
|
case DatabaseType::SQLITE:
|
||
|
return QSharedPointer<Schema>(new SqliteSchema(database));;
|
||
|
break;
|
||
|
// case PGSQL:
|
||
| src/database.h | ||
|---|---|---|
|
bool rollbackTransaction();
|
||
|
|
||
|
static DatabaseType getDatabaseType(QString s);
|
||
|
static QSharedPointer<Schema> getSchema(int db,
|
||
|
static QSharedPointer<Schema> getSchema(DatabaseType db,
|
||
|
QSharedPointer<Database> database);
|
||
|
|
||
|
};
|
||
| src/entity.cpp | ||
|---|---|---|
|
++iterator;
|
||
|
}
|
||
|
delete superObject;
|
||
|
superObject = 0;
|
||
|
superObject = nullptr;
|
||
|
}
|
||
|
return relations;
|
||
|
}
|
||
| ... | ... | |
|
QList<const QMetaObject *> classes = QList<const QMetaObject *>();
|
||
|
auto superMetaObject = this->metaObject()->superClass();
|
||
|
if (this->getInheritanceStrategy() == JOINED_TABLE) {
|
||
|
Entity *e = 0;
|
||
|
while (superMetaObject != 0
|
||
|
&& QString(superMetaObject->className()) !=
|
||
|
Entity *e = nullptr;
|
||
|
while (superMetaObject && QString(superMetaObject->className()) !=
|
||
|
QString("CuteEntityManager::Entity")) {
|
||
|
e = EntityInstanceFactory::createInstance(superMetaObject->className());
|
||
|
if (e) {
|
||
| ... | ... | |
|
superMetaObject = superMetaObject->superClass();
|
||
|
quint8 s = e->getInheritanceStrategy();
|
||
|
delete e;
|
||
|
e = 0;
|
||
|
e = nullptr;
|
||
|
if (stopAtSingleTableInheritance && s == PER_CLASS_TABLE) {
|
||
|
break;
|
||
|
}
|
||
| src/entityinstancefactory.cpp | ||
|---|---|---|
|
}
|
||
|
|
||
|
Entity *EntityInstanceFactory::createInstance(int metaTypeId) {
|
||
|
Entity *e = 0;
|
||
|
Entity *e = nullptr;
|
||
|
if (metaTypeId != QMetaType::UnknownType) {
|
||
|
auto metaObject = QMetaType::metaObjectForType(metaTypeId);
|
||
|
if (metaObject) {
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
Entity *EntityInstanceFactory::newSuperClassInstance(const Entity *e) {
|
||
|
Entity *super = 0;
|
||
|
Entity *super = nullptr;
|
||
|
if (e) {
|
||
|
auto metaObject = e->metaObject()->superClass();
|
||
|
if (QString(metaObject->className()) != QString("CuteEntityManager::Entity")) {
|
||
| src/entitymanager.cpp | ||
|---|---|---|
|
auto list = EntityInstanceFactory::castQVariantList(var);
|
||
|
if (!list.contains(add)) {
|
||
|
list.append(add);
|
||
|
this->setListProperty(entity,list,property);
|
||
|
this->setListProperty(entity, list, property);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
| ... | ... | |
|
builder->generateManyToManyColumnName(entity),
|
||
|
builder->generateManyToManyColumnName(ptr));
|
||
|
q.bindValue(0, entity->getId());
|
||
|
auto prop = this->mappedProperty(r,ptr);
|
||
|
auto prop = this->mappedProperty(r, ptr);
|
||
|
QSharedPointer<Entity> item;
|
||
|
for (int var = 0; var < saved.size(); ++var) {
|
||
|
item = list.at(var);
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
|
||
|
QMetaProperty EntityManager::mappedProperty(const Relation &r, const QSharedPointer<Entity> &foreignEntity) const
|
||
|
{
|
||
|
QMetaProperty EntityManager::mappedProperty(const Relation &r,
|
||
|
const QSharedPointer<Entity> &foreignEntity) const {
|
||
|
QMetaProperty prop;
|
||
|
auto props = foreignEntity->getMetaProperties();
|
||
|
if (!r.getMappedBy().isEmpty()) {
|
||
| ... | ... | |
|
}
|
||
|
} else {
|
||
|
auto relations = foreignEntity->getRelations();
|
||
|
for (auto iterator = relations.constBegin();iterator != relations.constEnd(); ++iterator) {
|
||
|
for (auto iterator = relations.constBegin(); iterator != relations.constEnd();
|
||
|
++iterator) {
|
||
|
auto rel = iterator.value();
|
||
|
if(rel.getMappedBy() == r.getPropertyName()) {
|
||
|
if (rel.getMappedBy() == r.getPropertyName()) {
|
||
|
prop = props.value(rel.getPropertyName());
|
||
|
break;
|
||
|
}
|
||
| src/enums/databasetype.h | ||
|---|---|---|
|
#include "../schema/sqliteschema.h"
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
enum DatabaseType {
|
||
|
enum class DatabaseType {
|
||
|
SQLITE = 0,
|
||
|
PGSQL = 1,
|
||
|
MYSQL = 2
|
||
| src/querybuilder.cpp | ||
|---|---|---|
|
const QSharedPointer<Entity> &entity, const Relation &relation,
|
||
|
const QMetaProperty &metaProperty, const QString &update,
|
||
|
const QString &remove) const {
|
||
|
QSharedPointer<Entity> ptr = QSharedPointer<Entity>
|
||
|
(EntityInstanceFactory::createInstance(metaProperty.type()));
|
||
|
auto ptr = QSharedPointer<Entity>
|
||
|
(EntityInstanceFactory::createInstance(metaProperty.type()));
|
||
|
if (ptr) {
|
||
|
if (relation.getType() == ONE_TO_ONE || relation.getType() == MANY_TO_ONE) {
|
||
|
QString indexName = this->generateIndexName(relation.getPropertyName(),
|
||
| ... | ... | |
|
auto superMetaObject = e->metaObject()->superClass();
|
||
|
if (e->getInheritanceStrategy() == JOINED_TABLE
|
||
|
&& QString(superMetaObject->className()) !=
|
||
|
QString("CuteEntityManager::Entity")) {
|
||
|
this->entityClassname()) {
|
||
|
Entity *superClass = EntityInstanceFactory::createInstance(
|
||
|
superMetaObject->className());
|
||
|
if (superClass) {
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
QSharedPointer<Database> QueryBuilder::getDatabase() const {
|
||
|
return database;
|
||
|
return this->database;
|
||
|
}
|
||
|
|
||
|
void QueryBuilder::setDatabase(const QSharedPointer<Database> &value) {
|
||
| ... | ... | |
|
}
|
||
|
}
|
||
|
if (!(QString(superMetaObject->className()) !=
|
||
|
QString("CuteEntityManager::Entity")
|
||
|
this->entityClassname()
|
||
|
&& entity->getInheritanceStrategy() == JOINED_TABLE)) {
|
||
|
map.insert(entity->getPrimaryKey(), this->schema->TYPE_BIGPK);
|
||
|
}
|
||
| ... | ... | |
|
return "DISTINCT";
|
||
|
}
|
||
|
|
||
|
QString QueryBuilder::entityClassname() const {
|
||
|
return QString("CuteEntityManager::Entity");
|
||
|
}
|
||
|
|
||
|
QString QueryBuilder::limit(const qint64 &limit, const qint64 &offset) const {
|
||
|
QString s = "";
|
||
|
if (limit > 0) {
|
||
| src/querybuilder.h | ||
|---|---|---|
|
const QStringList &columns = QStringList()) const;
|
||
|
virtual QString countFunction(const QString &distinctColumn = "") const;
|
||
|
virtual QString distinct() const;
|
||
|
QString entityClassname() const;
|
||
|
|
||
|
QSharedPointer<Schema> schema;
|
||
|
QSharedPointer<Database> database;
|
||
Auch abrufbar als: Unified diff
small cleanup