首页 技术 正文
技术 2022年11月16日
0 收藏 549 点赞 3,639 浏览 1755 个字

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;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,031
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,860