您的位置:首页 > Web前端 > JavaScript

AJAX异步请求,底层使用hibernate查询后的数据json封装之前的处理

2017-07-01 13:51 711 查看
此代码是对hibernate查询后的数据进行过滤,避免循环引用的产生,造成页面数据回显失败.

(fastjson过滤属性,重点在于PropertyFilter 这个东西(应用场景,hibernate懒加载过滤不要的属性))

//对json数据进行过滤,并且取消循环引用
//第一种使用方法
PropertyFilter filter = new PropertyFilter() {
@Override
public boolean apply(Object arg0, String FiledName, Object arg2) {
if ("cusPhone".equalsIgnoreCase(FiledName)) {
return false;
}
if ("id".equalsIgnoreCase(FiledName)) {
return false;
}
if ("orders".equalsIgnoreCase(FiledName)) {
return false;
}
if ("orders".equalsIgnoreCase(FiledName)) {
return false;
}
if ("cusImgsrc".equalsIgnoreCase(FiledName)) {
return false;
}
return true;
}
};
String json = JSONArray.toJSONString(list,filter,SerializerFeature.DisableCircularReferenceDetect);

//第二种使用方法
public class ComplexPropertyPreFilter implements PropertyFilter {
private Map<Class<?>, Set<String>> includeMap = new HashMap<Class<?>, Set<String>>();
//@Override
public boolean apply(Object source, String name, Object value) {
for(Entry<Class<?>, Set<String>> entry : includeMap.entrySet()) {**
Class<?> class1 = entry.getKey();
if(source.getClass() == class1){
Set<String> fields = entry.getValue();
for(String field : fields) {
if(field.equals(name)){
return false;
}
}
}
}
return true;
}

public ComplexPropertyPreFilter(Map<Class<?>, Set<String>> includeMap){
this.includeMap = includeMap;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax hibernate spring
相关文章推荐