想问一下query如果传入的是表名而不是实体类, 返回数据的字段名为什么都要转小写?
本身就是这样设计的还是我用法有问题呢?
4 回复
不知道
估计 字段直接传入数据库拼接成SQL
写个工具类就可以把它转成字段名
public static String javaToTable(String tableName)
{
StringBuilder builder = new StringBuilder(tableName);
Matcher mc = p.matcher(tableName);
int i = 0;
while (mc.find()) {
// System.out.println(builder.toString());
// System.out.println("mc.start():" + mc.start() + ", i: " + i);
// System.out.println("mc.end():" + mc.start() + ", i: " + i);
builder.replace(mc.start() + i, mc.end() + i, "_" + mc.group().toLowerCase());
i++;
}
if ('_' == builder.charAt(0)) {
builder.deleteCharAt(0);
}
return builder.toString();
}
看到了
public Map<String, Object> sensitive() {
NutMap map = new NutMap();
for (String key : keys) {
map.put(key, get(key));
}
return map;
}
写了一个 Castor , 想把 Record 转成 Map, 用Castor 的原因是应为工程里有个统一的Response的处理.
但是, 因为Record本身就是个Map, Castor里向上转型是这样:
if (toType.isAssignableFrom(fromType))
return (T) src;
根本不会走到自定义的Castor里.
所以 得把 Castors改成 Record -> NutMap
public static class RecordMapCastor extends Castor<Record, NutMap> {
@Override
public NutMap cast(Record src, Class<?> toType, String... args)
throws FailToCastObjectException {
return (NutMap) src.sensitive();
}
}
添加回复
请先登陆