This commit is contained in:
@@ -693,7 +693,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
try {
|
||||
if (!info.isVirtualEntity()) {
|
||||
String sql = "UPDATE " + info.getTable(id) + " SET " + info.getSQLColumn(null, column) + " = "
|
||||
+ FilterNode.formatToString(value) + " WHERE " + info.getPrimarySQLColumn() + " = " + FilterNode.formatToString(id);
|
||||
+ info.formatToString(value) + " WHERE " + info.getPrimarySQLColumn() + " = " + FilterNode.formatToString(id);
|
||||
if (debug.get()) logger.finest(info.getType().getSimpleName() + " update sql=" + sql);
|
||||
final Statement stmt = conn.createStatement();
|
||||
stmt.execute(sql);
|
||||
@@ -744,7 +744,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
CharSequence where = node.createSQLExpress(info, joinTabalis);
|
||||
|
||||
String sql = "UPDATE " + info.getTable(node) + " a SET " + info.getSQLColumn("a", column) + " = "
|
||||
+ FilterNode.formatToString(value) + (join == null ? "" : join) + ((where == null || where.length() == 0) ? "" : (" WHERE " + where));
|
||||
+ info.formatToString(value) + (join == null ? "" : join) + ((where == null || where.length() == 0) ? "" : (" WHERE " + where));
|
||||
if (debug.get()) logger.finest(info.getType().getSimpleName() + " update sql=" + sql);
|
||||
final Statement stmt = conn.createStatement();
|
||||
stmt.execute(sql);
|
||||
@@ -949,7 +949,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
attrs.add(attr);
|
||||
if (!virtual) {
|
||||
if (setsql.length() > 0) setsql.append(", ");
|
||||
setsql.append(info.getSQLColumn(null, col)).append(" = ").append(FilterNode.formatToString(attr.get(bean)));
|
||||
setsql.append(info.getSQLColumn(null, col)).append(" = ").append(info.formatToString(attr.get(bean)));
|
||||
}
|
||||
}
|
||||
if (!virtual) {
|
||||
@@ -1007,7 +1007,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
attrs.add(attr);
|
||||
if (!virtual) {
|
||||
if (setsql.length() > 0) setsql.append(", ");
|
||||
setsql.append(info.getSQLColumn("a", col)).append(" = ").append(FilterNode.formatToString(attr.get(bean)));
|
||||
setsql.append(info.getSQLColumn("a", col)).append(" = ").append(info.formatToString(attr.get(bean)));
|
||||
}
|
||||
}
|
||||
if (!virtual) {
|
||||
|
||||
@@ -379,6 +379,50 @@ public final class EntityInfo<T> {
|
||||
return l.intValue() >= this.logLevel;
|
||||
}
|
||||
|
||||
protected String formatToString(Object value) {
|
||||
if (value == null) return null;
|
||||
if (value instanceof CharSequence) return new StringBuilder().append('\'').append(value.toString().replace("'", "\\'")).append('\'').toString();
|
||||
// final Class t = value.getClass();
|
||||
// if (t == int[].class) {
|
||||
// int[] val = (int[]) value;
|
||||
// if (val.length == 0) return "";
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// sb.append(val[0]);
|
||||
// for (int i = 1; i < val.length; i++) {
|
||||
// sb.append(';').append(val[i]);
|
||||
// }
|
||||
// return sb.toString();
|
||||
// } else if (t == long[].class) {
|
||||
// long[] val = (long[]) value;
|
||||
// if (val.length == 0) return "";
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// sb.append(val[0]);
|
||||
// for (int i = 1; i < val.length; i++) {
|
||||
// sb.append(';').append(val[i]);
|
||||
// }
|
||||
// return sb.toString();
|
||||
// } else if (t == String[].class) {
|
||||
// String[] val = (String[]) value;
|
||||
// if (val.length == 0) return "";
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// sb.append(val[0]);
|
||||
// for (int i = 1; i < val.length; i++) {
|
||||
// sb.append(';').append(val[i]);
|
||||
// }
|
||||
// return sb.toString();
|
||||
// } else if (t == short[].class) {
|
||||
// short[] val = (short[]) value;
|
||||
// if (val.length == 0) return "";
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// sb.append(val[0]);
|
||||
// for (int i = 1; i < val.length; i++) {
|
||||
// sb.append(';').append(val[i]);
|
||||
// }
|
||||
// return sb.toString();
|
||||
// }
|
||||
return String.valueOf(value);
|
||||
}
|
||||
|
||||
protected T getValue(final SelectColumn sels, final ResultSet set) throws SQLException {
|
||||
T obj = creator.create();
|
||||
for (Attribute<T, Serializable> attr : queryAttributes) {
|
||||
@@ -398,6 +442,82 @@ public final class EntityInfo<T> {
|
||||
o = ((Number) o).doubleValue();
|
||||
} else if (t == byte.class) {
|
||||
o = ((Number) o).byteValue();
|
||||
// } else if (t == short[].class) {
|
||||
// String s = o.toString();
|
||||
// if (s.isEmpty()) {
|
||||
// o = new short[0];
|
||||
// } else {
|
||||
// String[] strs = o.toString().split(";");
|
||||
// short[] v = new short[strs.length];
|
||||
// int k = 0;
|
||||
// for (int i = 0; i < strs.length; i++) {
|
||||
// if (strs[i].isEmpty()) continue;
|
||||
// v[k++] = Short.parseShort(strs[i]);
|
||||
// }
|
||||
// if (k == v.length) {
|
||||
// o = v;
|
||||
// } else {
|
||||
// o = new short[k];
|
||||
// System.arraycopy(v, 0, o, 0, k);
|
||||
// }
|
||||
// }
|
||||
// } else if (t == int[].class) {
|
||||
// String s = o.toString();
|
||||
// if (s.isEmpty()) {
|
||||
// o = new int[0];
|
||||
// } else {
|
||||
// String[] strs = o.toString().split(";");
|
||||
// int[] v = new int[strs.length];
|
||||
// int k = 0;
|
||||
// for (int i = 0; i < strs.length; i++) {
|
||||
// if (strs[i].isEmpty()) continue;
|
||||
// v[k++] = Integer.parseInt(strs[i]);
|
||||
// }
|
||||
// if (k == v.length) {
|
||||
// o = v;
|
||||
// } else {
|
||||
// o = new int[k];
|
||||
// System.arraycopy(v, 0, o, 0, k);
|
||||
// }
|
||||
// }
|
||||
// } else if (t == long[].class) {
|
||||
// String s = o.toString();
|
||||
// if (s.isEmpty()) {
|
||||
// o = new long[0];
|
||||
// } else {
|
||||
// String[] strs = o.toString().split(";");
|
||||
// long[] v = new long[strs.length];
|
||||
// int k = 0;
|
||||
// for (int i = 0; i < strs.length; i++) {
|
||||
// if (strs[i].isEmpty()) continue;
|
||||
// v[k++] = Long.parseLong(strs[i]);
|
||||
// }
|
||||
// if (k == v.length) {
|
||||
// o = v;
|
||||
// } else {
|
||||
// o = new long[k];
|
||||
// System.arraycopy(v, 0, o, 0, k);
|
||||
// }
|
||||
// }
|
||||
// } else if (t == String[].class) {
|
||||
// String s = o.toString();
|
||||
// if (s.isEmpty()) {
|
||||
// o = new String[0];
|
||||
// } else {
|
||||
// String[] strs = o.toString().split(";");
|
||||
// String[] v = new String[strs.length];
|
||||
// int k = 0;
|
||||
// for (int i = 0; i < strs.length; i++) {
|
||||
// if (strs[i].isEmpty()) continue;
|
||||
// v[k++] = strs[i];
|
||||
// }
|
||||
// if (k == v.length) {
|
||||
// o = v;
|
||||
// } else {
|
||||
// o = new String[k];
|
||||
// System.arraycopy(v, 0, o, 0, k);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
attr.set(obj, o);
|
||||
|
||||
Reference in New Issue
Block a user