关于Oracle 字段是大写的(设置setContainerFactory)

oracle默认大写。setContainerFactory(...(true))后变成小写了。

则后续put字段例如 lineStyle  也会变成了  linestyle ,这样往往不符合预期,返回的JSON对象也大小写不一致;

解决办法:我们只需要按照类重写 ConvertFactory  的  convertCase

例如 MyOracleConvertFactory

    //这里判断是否全部是大写(oracle 字段)。若是则转换。否则不需要转换。
    public static boolean isAllUpperCase(String str){
        for(int i=0; i<str.length(); i++){
            char c = str.charAt(i);
            
            if(c >= 97 && c <= 122 ) {
                return false;
            }
        }
        return true;
    }
    
    private static String convertCase(String key) {
        if(!isAllUpperCase(key)) 
            return key;
        
        
        if (toLowerCase != null) {
            return toLowerCase ? key.toLowerCase() : key.toUpperCase();
        } else {
            return key;
        }
    }


评论区

JFinal

2019-03-29 17:49

CaseInsensitiveContainerFactory 这个类的构造方法,如果传入 true 就会转成小写、传入 false 会转成小写,如果不传入则原样保留不转换

楼主的貌似是新需求, 感谢分享

热门分享

扫码入社