我有一个项目,其中我有多个POJO类。这些类使用Hibernate与数据库映射。我想在JSON中从数据库返回数据。我的代码是:
@RequestMapping(value="{userid}",method=RequestMethod.GET)
public @ResponseBody List<IterationInfo> getIterationInfoInJSON(@PathVariable int userid)
{
Configuration con = new Configuration();
con.configure("hibernate.cfg.xml");
SessionFactory SF = con.buildSessionFactory();
Session session= SF.openSession();
Transaction TR = session.beginTransaction();
Query query=session.createQuery("from IterationInfo");
List<IterationInfo> listiterationinfo=query.list();
session.close();
SF.close();
return listiterationinfo;
}
IterationInfo是一个POJO类.List包含来自查询的数据。但是我希望来自多个Tables / POJO类的数据作为单个JSON。我能够从IterationInfo表返回数据。但是如何从多个表返回/ POJO课程。
答案 0 :(得分:2)
创建一个包含所需数据的包装器dto,例如:
class SomeResponseDto {
private List<IterationInfo> iterationInfo;
private List<AnotherPojoClass> anotherPojoClasses;
// getters, setters
}
现在您可以将数据合并到单个JSON对象中:
@RequestMapping(value="{userid}",method=RequestMethod.GET)
public @ResponseBody SomeResponseDto getIterationInfoInJSON(@PathVariable int userid) {
// code
SomeResponseDto dto = new SomeResponseDto();
dto.setIterationInfos(listiterationinfo);
dto.setAnotherPojoClasses(anotherPojoClasses);
return dto;
}
答案 1 :(得分:0)
Class A{ //POJO Class 1
private String id;
private String name;
//Getter and setter methods
}
Class B{ //POJO Class 2
private String id;
private String name;
//Getter and setter methods
}
为POJO类创建对象。
@RequestMapping(value="{userid}",method=RequestMethod.GET)
public @ResponseBody List<Object> getIterationInfoInJSON(@PathVariable int userid)
{
A a=new A(); B b=new B();
List<Object> ls=new List<Object>();
ls.add(a);
ls.add(b);
return ls;
}