refactoring additional fields for data scope

This commit is contained in:
John Woodlock
2012-08-30 19:05:49 +10:00
parent f09d781005
commit 508a46e537
@@ -310,14 +310,18 @@ public class ReadWriteNonCoreDataServiceImpl implements
} }
} }
// just updating fields that have changed since pre-update read - though
// its possible these values are different from the page the user was
// looking at and even different from the current db values (if some
// other update got in quick) - would need a version field for
// completeness but its okay to take this risk with additional fields
// data
for (String key : updatedColumns.keySet()) { for (String key : updatedColumns.keySet()) {
logger.info("Update Column: " + key + " - Value: " + updatedColumns.get(key)); logger.info("Update Column: " + key + " - Value: "
+ updatedColumns.get(key));
} }
String pValueWrite = ""; String pValueWrite = "";
String saveSql = ""; String saveSql = "";
String singleQuote = "'"; String singleQuote = "'";
@@ -326,8 +330,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
boolean firstColumn = true; boolean firstColumn = true;
saveSql = "update `" + fullSetName + "` "; saveSql = "update `" + fullSetName + "` ";
for (String key : keys) { for (String key : updatedColumns.keySet()) {
if (!(key.equalsIgnoreCase("id"))) {
if (firstColumn) { if (firstColumn) {
saveSql += " set "; saveSql += " set ";
firstColumn = false; firstColumn = false;
@@ -335,20 +338,15 @@ public class ReadWriteNonCoreDataServiceImpl implements
saveSql += ", "; saveSql += ", ";
} }
pValue = queryParams.get(key); pValue = updatedColumns.get(key);
if (pValue == null || pValue.equals("")) { if (StringUtils.isEmpty(pValue)) {
pValueWrite = "null"; pValueWrite = "null";
} else { } else {
pValueWrite = singleQuote pValueWrite = singleQuote
+ genericDataService.replace(pValue, + genericDataService.replace(pValue, singleQuote,
singleQuote, singleQuote + singleQuote) singleQuote + singleQuote) + singleQuote;
+ singleQuote;
}
saveSql += "`"
+ genericDataService
.replace(key, underscore, space) + "` = "
+ pValueWrite;
} }
saveSql += "`" + key + "` = " + pValueWrite;
} }
saveSql += " where id = " + id; saveSql += " where id = " + id;
@@ -356,26 +354,20 @@ public class ReadWriteNonCoreDataServiceImpl implements
String insertColumns = ""; String insertColumns = "";
String selectColumns = ""; String selectColumns = "";
String columnName = ""; String columnName = "";
for (String key : keys) { for (String key : updatedColumns.keySet()) {
pValue = queryParams.get(key); pValue = updatedColumns.get(key);
if (!(key.equalsIgnoreCase("id"))) {
pValue = queryParams.get(key); if (StringUtils.isEmpty(pValue)) {
if (pValue == null || pValue.equals("")) {
pValueWrite = "null"; pValueWrite = "null";
} else { } else {
pValueWrite = singleQuote pValueWrite = singleQuote
+ genericDataService.replace(pValue, + genericDataService.replace(pValue, singleQuote,
singleQuote, singleQuote + singleQuote) singleQuote + singleQuote) + singleQuote;
+ singleQuote;
} }
columnName = "`" columnName = "`" + key + "`";
+ genericDataService
.replace(key, underscore, space) + "`";
insertColumns += ", " + columnName; insertColumns += ", " + columnName;
selectColumns += "," + pValueWrite + " as " + columnName; selectColumns += "," + pValueWrite + " as " + columnName;
} }
}
saveSql = "insert into `" + fullSetName + "` (id" + insertColumns saveSql = "insert into `" + fullSetName + "` (id" + insertColumns
+ ")" + " select " + id + " as id" + selectColumns; + ")" + " select " + id + " as id" + selectColumns;