enhance mapping for ORM sharding

This commit is contained in:
温少
2012-05-06 21:08:23 +08:00
10 changed files with 371 additions and 22 deletions
@@ -96,21 +96,29 @@ public class MappingEngine {
public String explainToSelectSQL(String sql, List<Object> parameters) {
SQLSelectQueryBlock query = explainToSelectSQLObject(sql);
query.accept(this.createMappingVisitor(parameters));
MappingVisitor visitor = this.createMappingVisitor(parameters);
query.accept(visitor);
afterResole(visitor);
return toSQL(query);
}
public void afterResole(MappingVisitor visitor) {
}
public SQLDeleteStatement explainToDeleteSQLObject(String sql) {
return provider.explainToDeleteSQLObject(this, sql);
}
public String explainToDeleteSQL(String sql) {
SQLDeleteStatement query = explainToDeleteSQLObject(sql);
SQLDeleteStatement stmt = explainToDeleteSQLObject(sql);
query.accept(this.createMappingVisitor());
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
stmt.accept(visitor);
afterResole(visitor);
return toSQL(query);
return toSQL(stmt);
}
public String resolveTableName(Entity entity, List<Object> parameters) {
@@ -126,11 +134,13 @@ public class MappingEngine {
}
public String explainToUpdateSQL(String sql) {
SQLUpdateStatement query = explainToUpdateSQLObject(sql);
SQLUpdateStatement stmt = explainToUpdateSQLObject(sql);
query.accept(this.createMappingVisitor());
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
stmt.accept(visitor);
afterResole(visitor);
return toSQL(query);
return toSQL(stmt);
}
public SQLInsertStatement explainToInsertSQLObject(String sql) {
@@ -138,11 +148,13 @@ public class MappingEngine {
}
public String explainToInsertSQL(String sql) {
SQLInsertStatement query = explainToInsertSQLObject(sql);
SQLInsertStatement stmt = explainToInsertSQLObject(sql);
query.accept(this.createMappingVisitor());
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
stmt.accept(visitor);
afterResole(visitor);
return toSQL(query);
return toSQL(stmt);
}
public List<Object> exportParameters(SQLObject sqlObject) {