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. JDBC主要API学习总结

    JDBC主要API学习 一.JDBC主要API简介 JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果. 二.Driver 接口 Java.sql.D ...

  2. 华为手机,删除安装包apk

    1.下载“文件管理”,完成安装后,打开文件管理. 2.找到安装包,单击. 3.长按想要删除的apk文件,页面上会出现垃圾箱的图标,点击垃圾箱即可完成删除.

  3. HDU 1251 统计难题 字典树大水题

    今天刚看的字典树, 就RE了一发, 字典树原理还是很简单的, 唯一的问题就是不知道一维够不够用, 就开的贼大, 这真的是容易MLE的东西啊, 赶紧去学优化吧. HDU-1251 统计难题 这道题唯一的 ...

  4. lightoj 1028 - Trailing Zeroes (I)(素数筛)

    We know what a base of a number is and what the properties are. For example, we use decimal number s ...

  5. hdu6351 Beautiful Now 杭电第五场 暴力枚举

    Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  6. codeforces 807 E. Prairie Partition(贪心+思维)

    题目链接:http://codeforces.com/contest/807/problem/E 题意:已知每个数都能用x=1 + 2 + 4 + ... + 2k - 1 + r (k ≥ 0, 0 ...

  7. yzoj P1122 阶乘 题解

    T组数据,给出N,求出N!最右边非零的数. 对于30%的数据,N <= 30,T<=10. 对于全部的数据,N <= 10^2009,T<=30. 一道数学题 解析 N!/(1 ...

  8. x86_64 Linux 运行时栈的字节对齐

    前言 C语言的过程调用机制(即函数之间的调用)的一个关键特性(起始大多数编程语言也是如此)都是使用了栈数据结构提供的后进先出的内存管理原则.每一个函数的栈空间被称为栈帧,一个栈帧上包含了保存的寄存器. ...

  9. R:ggplot2数据可视化——进阶(1)

    ,分为三个部分,此篇为Part1,推荐学习一些基础知识后阅读~ Part 1: Introduction to ggplot2, 覆盖构建简单图表并进行修饰的基础知识 Part 2: Customiz ...

  10. MySQL索引原理及SQL优化

    目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type tab ...