diff options
author | James Moger <james.moger@gmail.com> | 2012-07-14 16:09:52 -0400 |
---|---|---|
committer | James Moger <james.moger@gmail.com> | 2012-07-14 16:09:52 -0400 |
commit | 9e4799babb53626ccfea78bae9a3d58ceef9d258 (patch) | |
tree | 4e882540911aee2f6ef50e53cff0c06e5938a0c4 | |
parent | 667d1cdef4b465dcaedb5a9544c47b031ae5505d (diff) | |
download | iciql-9e4799babb53626ccfea78bae9a3d58ceef9d258.tar.gz iciql-9e4799babb53626ccfea78bae9a3d58ceef9d258.zip |
Use the upgrade check to skip unnecessary table create statements
-rw-r--r-- | src/com/iciql/Db.java | 6 | ||||
-rw-r--r-- | src/com/iciql/TableDefinition.java | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/com/iciql/Db.java b/src/com/iciql/Db.java index 16cf386..6187aba 100644 --- a/src/com/iciql/Db.java +++ b/src/com/iciql/Db.java @@ -279,6 +279,8 @@ public class Db { }
// remove this model class from the table definition cache
classMap.remove(modelClass);
+ // remove this model class from the upgrade checked cache
+ upgradeChecked.remove(modelClass);
return rc;
}
@@ -395,6 +397,10 @@ public class Db { }
return def;
}
+
+ <T> boolean hasCreated(Class<T> clazz) {
+ return upgradeChecked.contains(clazz);
+ }
public synchronized void setDbUpgrader(DbUpgrader upgrader) {
if (!upgrader.getClass().isAnnotationPresent(IQVersion.class)) {
diff --git a/src/com/iciql/TableDefinition.java b/src/com/iciql/TableDefinition.java index 1d9a98a..b6a670b 100644 --- a/src/com/iciql/TableDefinition.java +++ b/src/com/iciql/TableDefinition.java @@ -650,6 +650,9 @@ public class TableDefinition<T> { db.upgradeTable(this);
return this;
}
+ if (db.hasCreated(clazz)) {
+ return this;
+ }
SQLStatement stat = new SQLStatement(db);
db.getDialect().prepareCreateTable(stat, this);
IciqlLogger.create(stat.getSQL());
|