1.问题描述

在项目中经常会有两个类存在一对多或者多对一的关联关系,这样在查询多的一方时,会深入查询关联的一方,而我们可能并不需要去深入查询那些数据,此时使用JsonConfig的jsonConfig.setExcludes过滤不需要转换的属性

2.举例

关联的类:

a:常用联系人

@Entity
@Table(name = "core_contacts")
public class Contacts implements java.io.Serializable{/**
* 会员
*/
  private Member member;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member")
public Member getMember() {
return member;
} public void setMember(Member member) {
this.member = member;
} }

b:会员类

@Entity
@Table(name = "core_member", uniqueConstraints = {
@UniqueConstraint(columnNames = "user_account"), @UniqueConstraint(columnNames = "mobile"),
@UniqueConstraint(columnNames = "email") })
public class Member implements java.io.Serializable {
  //常用联系人
private Set<Contacts> contacts = new HashSet<Contacts>(0);
public Member(Set<Contacts> contacts) { this.contacts = contacts;
} @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "member")
public Set<Contacts> getContacts() {
return contacts;
} public void setContacts(Set<Contacts> contacts) {
this.contacts = contacts;
}
}

3.在根据会员查询常用联系人时,会深入查询会员的所有信息,此时需要过滤

@RequestMapping("loadSelect.html")
public JSONMessageView loadSelect(HttpServletRequest request){
JSONMessageView json=new JSONMessageView(BusinessConstant.ERR,"记载失败",null);
Member member=super.getMember();
try {
List<Contacts> contactPersonLst=contactsService.getByMember(member);
if (contactPersonLst==null) {
contactPersonLst=new ArrayList<Contacts>();
}
Map<String, Object> map=new HashMap<String, Object>();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "member" });//过滤不需要转换的属性
JSONArray contactPersonList=JSONArray.fromObject(contactPersonLst,jsonConfig);
map.put("contactPersonLst", contactPersonList);
json.setCode(BusinessConstant.OK);
json.setMessage("加载成功");
json.setContent(map);
return json;
} catch (Exception e) {
e.printStackTrace();
json.setMessage("加载异常");
return json;
}

JsonConfig的jsonConfig.setExcludes的用法的更多相关文章

  1. 使用JsonConfig中的setExcludes方法过滤不需要转换的属性

    Hibernate的many-to-one双向关联中,查询many方时会将one方数据顺带着查询,同时one中会有List<Many>,然后又会去查Many中的数据... 周而复始,结果j ...

  2. jsonConfig用法

    1.先编写jsonConfig的初始化代码 private JsonConfig jsonConfig; public action构造方法() { jsonConfig = new JsonConf ...

  3. json-lib——JsonConfig详细使用说明

    在使用json-lib包中JSONObject.fromObject(bean,cfg)时,可能出现以下几种情况: 1.(防止自包含)转换的对象包含自身对象,或者对象A下面挂了对象B,对象B下面又挂了 ...

  4. json-lib 之jsonConfig具体应用

    一,setCycleDetectionStrategy 防止自包含 public static void testCycleObject() {         CycleObject object ...

  5. JSON lib 里JsonConfig详解

    一,setCycleDetectionStrategy 防止自包含 /** * 这里测试如果含有自包含的时候需要CycleDetectionStrategy */ public static void ...

  6. json-lib 之jsonConfig详细使用(转载写的不错)

    =========================== Java To Json ============================= 一,setCycleDetectionStrategy 防 ...

  7. JsonConfig处理日期时间

    写在前面: 页面发送ajax请求到后台,后台返回对应的json格式数据给前台页面进行数据展示,如果json数据中含有日期时间,就需要对日期进行处理 下面是相关的代码部分 JsonConfig json ...

  8. 认识json,详解JsonConfig

    说到json 初学者很迷茫,不知json怎么为何物,以及怎么用.我简单说下我的了解 既然用了json 我们就要知其然也知其所以然.下面有几个疑问 1.为什么要用json?也就是json 的优势 2.我 ...

  9. json处理复杂对象jsonConfig

     我们通常的Json字符串和java当对象互转.经常有选择性地过滤掉一些属性值,和json-lib包JsonConfig为我们提供了这样一个 特征,有几种方法实施细则. (1)建立JsonConf ...

随机推荐

  1. 通知&代理

    通知:多对多的关系,比较耗性能 使用: 1.观察者到通知中心注册(接受那个发布者发布的什么通知,监听到通知后的处理方法)  [[NSNotificationCenter defaultCenter] ...

  2. HDU4578 线段树(区间更新 + 多种操作)和平方,立方

    参考:https://www.cnblogs.com/H-Vking/p/4297973.html 题意: 虽然是比较裸的线段树,但是比较麻烦,并且有很多细节需要考虑,对着别人的ac代码debug了一 ...

  3. CF - 1130 E Wrong Answer

    PS:换了一种方式 希望大家喜欢 2333 /** code by: zstu wxk time: 2019/03/01 Problem Link: http://codeforces.com/con ...

  4. yzoj2057 x 题解

    题意:给出一个集合,要求把这个集合分成两部分,使得一个集合中的任一元素都与另一个集合的全部元素都两两互质 暴力 枚举每个元素O(n^2)再暴力判gcd=1,如果非1就放入不同集合内,用并查集维护联通块 ...

  5. mybatis转义

    SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE 在执行 ...

  6. 实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示

    最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,typ ...

  7. CentOS 7 下的网络配置工具

    之前在CentOS 6下编辑网卡,直接使用setup工具就可以了. 但在新版的CentOS 7里,setuptool已经没有网络编辑组件了,取而代之的是NetworkManager Text User ...

  8. Linux Shell 基础知识(一)

    1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...

  9. [大数据学习研究] 3. hadoop分布式环境搭建

    1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...

  10. AtomicInteger 一个提供原子操作的Integer类

    转自:http://www.blogjava.net/freeman1984/archive/2011/10/17/361402.html AtomicInteger,一个提供原子操作的Integer ...