關於play framework多表查詢返回vo轉換爲Map

因爲看網上基於play多表查詢相關的比較少,最近有項目用到了,以爲多表查詢這一塊有必要和你們分享一下sql

基於play1.4.5spa

@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;

}


//方法一:orm

//返回 List<Object[]>get

public CommResult    findUserList(Integer pageIndex,Integer pageSize){it

      try{io

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

      List<Map<Object,Object>> lists = new ArrayList<>();

 

          List<Object[]> lists = JPA.em().createNativeQuery(sql).getResultList();class

          for(Object[] list:list){    List

                //循環select

             Map<Object,Object> map = new LinkedHashMap<>();

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

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

                lists.add(map);

         }

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

      }catch(Exception e){      

      e.printStackTrace();

      }

}

 

//方法二:

//返回 List<Map<String,String>>

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<Map<String,String>> lists = (List<Map<String,String>>)query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();

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

      }catch(Exception e){      

      e.printStackTrace();

      }

}

相關文章
相關標籤/搜索