hibernate多表查询后的结果集里有count计数结果
2014-07-07 11:49
323 查看
碰到问题就积累下:
hibernate查询时候写了下面sql语句:
public GameListInfoDTO getGameInfoByGameId(String gameId){
String hql ="select new com.ibaiyun.dto.GameListInfoDTO(g.id,g.time,g.endtime,t.name,t.minBet,"
+ "count(p.recordid),t.paywin) "
+ "from Gamerecord g,Tableboard t,Playerrecord p "
+ "where t.id = g.tableid and g.time = p.time and g.id=? group by g.id";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setInteger(0, Integer.parseInt(gameId));
return (GameListInfoDTO) query.uniqueResult();
}
一开始不知道怎么返回这些零零散散得到的属性数据,因为在不同表里,后来网上找了,就自己写个实体类封装,最初是这样写的,一开始连实体类属性字段都没和sql语句查询的字段对上,纠结了挺久:
public class GameListInfoDTO {
private int id;
private Date time;
private Date endtime;
private String name;
private int minBet;
private String recordid;
private short paywin;
public GameListInfoDTO(int id, Date time, Date endtime, String name,
int minBet, Long recordid, short paywin) {
super();
this.id = id;
this.time = time;
this.endtime = endtime;
this.name = name;
this.minBet = minBet;
this.recordid = recordid;
this.paywin = paywin;
}
这样写后,还是报属性字段对不上,再在网上查了count得到的结果集什么类型的,后来改为Long之后就运行正常了:
private Long recordid;
有问题就记录了一下
hibernate查询时候写了下面sql语句:
public GameListInfoDTO getGameInfoByGameId(String gameId){
String hql ="select new com.ibaiyun.dto.GameListInfoDTO(g.id,g.time,g.endtime,t.name,t.minBet,"
+ "count(p.recordid),t.paywin) "
+ "from Gamerecord g,Tableboard t,Playerrecord p "
+ "where t.id = g.tableid and g.time = p.time and g.id=? group by g.id";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setInteger(0, Integer.parseInt(gameId));
return (GameListInfoDTO) query.uniqueResult();
}
一开始不知道怎么返回这些零零散散得到的属性数据,因为在不同表里,后来网上找了,就自己写个实体类封装,最初是这样写的,一开始连实体类属性字段都没和sql语句查询的字段对上,纠结了挺久:
public class GameListInfoDTO {
private int id;
private Date time;
private Date endtime;
private String name;
private int minBet;
private String recordid;
private short paywin;
public GameListInfoDTO(int id, Date time, Date endtime, String name,
int minBet, Long recordid, short paywin) {
super();
this.id = id;
this.time = time;
this.endtime = endtime;
this.name = name;
this.minBet = minBet;
this.recordid = recordid;
this.paywin = paywin;
}
这样写后,还是报属性字段对不上,再在网上查了count得到的结果集什么类型的,后来改为Long之后就运行正常了:
private Long recordid;
有问题就记录了一下
相关文章推荐
- hibernate hql 查询指定字段并获取结果集,多表查询结果集
- hibernate查询list结果集结果都是一样
- hibernate createQuery和createSQLQuery 查询结果count计算
- Hibernate createSQLQuery 查询Oracle char类型结果为一个字符解决方法汇总
- Spring Hibernate sqlquery 查询结果 缓存问题
- Hibernate如何完成查询结果的排序
- 使用HIBERNATE的SQL查询并将结果集自动转换成POJO
- 用java把从数据库中查询出的结果集重新按照结果中的几个字段重新排序
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2
- struts2遍历hibernate级联查询的结果
- 在Hibernate执行一对多表查询的HQL语句,怎样循环打印出结果
- 解决Hibernate原生SQL映射问题 - SQL查询出来的结果映射为值对象
- Hibernate Native SQL查询常用的2种方法及对返回结果处理
- Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法
- Hibernate数据查询结果转json格式
- Hibernate多表查询结果处理
- hibernate QBC 多表查询结果集,类型
- 关于Hibernate中SQL查询结果的数据结构
- 对于 hibernate 查询结果List 中数据的拷贝。。。。。。。
- hibernate通过sql语句查询出的结果集封装到bean里面去