map 转换成vo_关于play framework多表查询返回vo转换为Map

由于看网上基于play多表查询相关的比较少,最近有项目用到了,觉得多表查询这一块有必要和大家分享一下

基于play1.4.5

@Entity

@Table("student")

public class Student extends Model {

@Id

public Integer id;

public String name;

public Integer sex;

}

@Entity

@Table("teacher")

public class Person extends Model {

@Id

public Integer id;

public Integer studentId;

public String teacherName;

}

//方法一:

//返回 List

public CommResult    findUserList(Integer pageIndex,Integer pageSize){

try{

String sql = " select s.name,s.sex,t.teacherName  from student s inner join teacher t on s.id=t.studentId ";

List> lists = new ArrayList<>();

List lists = JPA.em().createNativeQuery(sql).getResultList();

for(Object[] list:list){

//循环

Map map = new LinkedHashMap<>();

map.put("name",list[0]);

..............

lists.add(map);

}

return  CommResult.ok(msg:"",lists);

}catch(Exception e){

e.printStackTrace();

}

}

//方法二:

//返回 List>

public CommResult    findUserList2(Integer pageIndex,Integer pageSize){

try{

String sql = " select s.name,s.sex,t.teacherName  from student s inner join teacher t on s.id=t.studentId ";

Query query = JPA.em().createNativeQuery(sql);

//直接将获取的多表数据转化为Map

List> lists = (List>)query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();

return  CommResult.ok(msg:"",lists);

}catch(Exception e){

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值