JsonConfig的jsonConfig.setExcludes的用法
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的用法的更多相关文章
- 使用JsonConfig中的setExcludes方法过滤不需要转换的属性
Hibernate的many-to-one双向关联中,查询many方时会将one方数据顺带着查询,同时one中会有List<Many>,然后又会去查Many中的数据... 周而复始,结果j ...
- jsonConfig用法
1.先编写jsonConfig的初始化代码 private JsonConfig jsonConfig; public action构造方法() { jsonConfig = new JsonConf ...
- json-lib——JsonConfig详细使用说明
在使用json-lib包中JSONObject.fromObject(bean,cfg)时,可能出现以下几种情况: 1.(防止自包含)转换的对象包含自身对象,或者对象A下面挂了对象B,对象B下面又挂了 ...
- json-lib 之jsonConfig具体应用
一,setCycleDetectionStrategy 防止自包含 public static void testCycleObject() { CycleObject object ...
- JSON lib 里JsonConfig详解
一,setCycleDetectionStrategy 防止自包含 /** * 这里测试如果含有自包含的时候需要CycleDetectionStrategy */ public static void ...
- json-lib 之jsonConfig详细使用(转载写的不错)
=========================== Java To Json ============================= 一,setCycleDetectionStrategy 防 ...
- JsonConfig处理日期时间
写在前面: 页面发送ajax请求到后台,后台返回对应的json格式数据给前台页面进行数据展示,如果json数据中含有日期时间,就需要对日期进行处理 下面是相关的代码部分 JsonConfig json ...
- 认识json,详解JsonConfig
说到json 初学者很迷茫,不知json怎么为何物,以及怎么用.我简单说下我的了解 既然用了json 我们就要知其然也知其所以然.下面有几个疑问 1.为什么要用json?也就是json 的优势 2.我 ...
- json处理复杂对象jsonConfig
我们通常的Json字符串和java当对象互转.经常有选择性地过滤掉一些属性值,和json-lib包JsonConfig为我们提供了这样一个 特征,有几种方法实施细则. (1)建立JsonConf ...
随机推荐
- 通知&代理
通知:多对多的关系,比较耗性能 使用: 1.观察者到通知中心注册(接受那个发布者发布的什么通知,监听到通知后的处理方法) [[NSNotificationCenter defaultCenter] ...
- HDU4578 线段树(区间更新 + 多种操作)和平方,立方
参考:https://www.cnblogs.com/H-Vking/p/4297973.html 题意: 虽然是比较裸的线段树,但是比较麻烦,并且有很多细节需要考虑,对着别人的ac代码debug了一 ...
- CF - 1130 E Wrong Answer
PS:换了一种方式 希望大家喜欢 2333 /** code by: zstu wxk time: 2019/03/01 Problem Link: http://codeforces.com/con ...
- yzoj2057 x 题解
题意:给出一个集合,要求把这个集合分成两部分,使得一个集合中的任一元素都与另一个集合的全部元素都两两互质 暴力 枚举每个元素O(n^2)再暴力判gcd=1,如果非1就放入不同集合内,用并查集维护联通块 ...
- mybatis转义
SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE 在执行 ...
- 实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,typ ...
- CentOS 7 下的网络配置工具
之前在CentOS 6下编辑网卡,直接使用setup工具就可以了. 但在新版的CentOS 7里,setuptool已经没有网络编辑组件了,取而代之的是NetworkManager Text User ...
- Linux Shell 基础知识(一)
1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...
- [大数据学习研究] 3. hadoop分布式环境搭建
1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...
- AtomicInteger 一个提供原子操作的Integer类
转自:http://www.blogjava.net/freeman1984/archive/2011/10/17/361402.html AtomicInteger,一个提供原子操作的Integer ...