在使用Hibernate时,需把对象转换成Json的时候,如果是双向关联会造成死循环。这里给出在使用Gson来转换Json时的解决方法。
这里需要用到Gson中的一个注解@Expose
,只要将实体类需要序列化的属性用@Expose
注解,同时在创建Gson对象的时候使用
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
未注释@Expose
的属性将不会被序列化。
public class Department
{
@Expose
private Integer did; // 部门ID
@Expose
private String dname; // 部门名称
@Expose
private String ddesc; // 部门描述
private Set<Employee> employees = new HashSet<Employee>();
public Integer getDid()
{
return did;
}
public void setDid(Integer did)
{
this.did = did;
}
public String getDname()
{
return dname;
}
public void setDname(String dname)
{
this.dname = dname;
}
public String getDdesc()
{
return ddesc;
}
public void setDdesc(String ddesc)
{
this.ddesc = ddesc;
}
public void setEmployees(Set<Employee> employees)
{
this.employees = empllees;
}
public Set<Employee> getEmployees()
{
return employees;
}
}