@Query("select s.userid,s.playeddury,s.courseid,s.videoid,l.name as videoname,l.clicknum,l.uploadtime,l.downloadnum,l.imahttppath,l.vidhttppath,l.recommend from AppStudyRecodTable s,LoadVideoTable l where s.userid = ? and l.id = s.videoid")
public List<Map<String,Object>> findByUserid(int userid);
我连查了两张表,但是返回值是什么,平时返回值都是定义好的Entiry,但是连表了,就不可能返回Entity了。
于是我返回了List<Map<>>,但是结果并不理想。返回如下
{
"errormsg": "成功",
"data": [
[
1000,
"23",
2,
8,
"敲鼓",
5,
"2016-12-13 04:35:19\n",
0,
"http://1608k8d317.iask.in:80/1480667720159-c100.png",
"http://1608k8d317.iask.in:80/1480667718639-[陈二G的YN人生2]第01集_hd.mp4",
"0"
],
[
1000,
"45",
1,
4,
"税务232",
1,
"2016-12-02 04:35:19",
0,
"http://1608k8d317.iask.in:80/1480667720159-c100.png",
"http://1608k8d317.iask.in:80/1480667718639-[陈二G的YN人生2]第01集_hd.mp4",
"0"
]
],
"errorcode": "0"
}
这是一个list啊,没有map对应的key,如何让他返回map,map的key是select s.userid,s.playeddury,中的userid?望高手指点
public List<Map<String,Object>> findByUserid(int userid);
我连查了两张表,但是返回值是什么,平时返回值都是定义好的Entiry,但是连表了,就不可能返回Entity了。
于是我返回了List<Map<>>,但是结果并不理想。返回如下
{
"errormsg": "成功",
"data": [
[
1000,
"23",
2,
8,
"敲鼓",
5,
"2016-12-13 04:35:19\n",
0,
"http://1608k8d317.iask.in:80/1480667720159-c100.png",
"http://1608k8d317.iask.in:80/1480667718639-[陈二G的YN人生2]第01集_hd.mp4",
"0"
],
[
1000,
"45",
1,
4,
"税务232",
1,
"2016-12-02 04:35:19",
0,
"http://1608k8d317.iask.in:80/1480667720159-c100.png",
"http://1608k8d317.iask.in:80/1480667718639-[陈二G的YN人生2]第01集_hd.mp4",
"0"
]
],
"errorcode": "0"
}
这是一个list啊,没有map对应的key,如何让他返回map,map的key是select s.userid,s.playeddury,中的userid?望高手指点
@Query("select new map(s.userid,s.playeddury,s.courseid,s.videoid,l.name as videoname,l.clicknum,l.uploadtime,l.downloadnum,l.imahttppath,l.vidhttppath,l.recommend) from AppStudyRecodTable s,LoadVideoTable l where s.userid = ? and l.id = s.videoid")
public List<Map<String,Object>> findByUserid(int userid);
后面的自己补,不写as xxxx,出来的map的key值是1,2,3.....,大体是这样,正好昨晚也碰这样的问题
JSONArray jsonArray = JSONArray.fromObject(company);
强转成json不就可以了
@OneToOne
@JoinColumn(name = "video_id")
private LoadVideoTable loadVideoTable;
然后再查询的时候直接List<AppStudyRecodTable> findByUserId(String id);就行了,要获取LoadVideoTable表中的内容创建AppStudyRecodTable对象.getloadVideoTable,,,,
List<Map> getSysPermissionByUserName();
我用 返回list<map> 解决了
control拿到这个list,将Object类型转成Map类型
可以参考这段代码
List<Object> resultList = new ArrayList<>();
List<Object[]> result = XXXXService.selectListXXX(Id);
for (Object row : result) {
Object[] rowArray = (Object[]) row;
Map<String, Object> mapArr = new HashMap<String, Object>();
mapArr.put("id", rowArray[0]);
mapArr.put("name", rowArray[1]);
mapArr.put("sex", rowArray[2]);
resultList.add(mapArr);
}
return resultList;这样前台取到的List就是key:value类型的了
{
"id": "111",
"name": abc,
"sex": 1
},
{
"id": "222",
"name": abc,
"sex": 0
},要不建一个DTO,用DTO去接这个List应该也可以
@Query(value = "select new com.kevin.demo2.Model.UserVo(u.id,u.name,c.cityName) from TkUser u LEFT JOIN " +
"UserCity uc on u.id = uc.userId left join City c on c.id = uc.cityId where u.age >?1")
List<UserVo> findjjj(int age);
@Query(value="select s.userid as userid,s.playeddury as playeddury from AppStudyRecodTable s,LoadVideoTable l where s.userid = ? and l.id = s.videoid",nativeQuery=true)
public List<Map<String,Object>> findByUserid(int userid);