hibernate3.5使用session.createQuery()查出数据与数据库不一致
2013-07-02 10:02
471 查看
代码如下:
public List<T> getForList(T t) {
List<T> tList = new ArrayList<T>();
StringBuffer sb = new StringBuffer(
"select rm,rm2.name from T rm,T2 rm2 Where 1=1 and rm.id=rm2.id ");
StringBuffer buffer = new StringBuffer(
"select count(*) from T rm,T2 rm2 Where 1=1 and rm.id=rm2.id ");
try {
if (null != rm.getname() || ("").equals(rm.getname())) {
sb.append("and rm.name like '%" + t.getname() + "%' ");
buffer.append("and rm.name like '%" + t.getname() + "%' ");
}
// sb.append(" order by rm.id ");
List<T> rmList = (List<T>) super.showPage(sb
.toString(), buffer.toString(), rm.getPage(), rm
.getPagesize());
if (rmList.size() != 0) {
Object objTotal = rmList.get(1);
Iterator it = ((Iterable<Throwable>) rmList.get(0)).iterator();
int i=0;
while (it.hasNext()) {
i++;
Object[] obj = (Object[]) it.next();
RgMethod rm_ = (RgMethod) obj[0];
String name = (String) obj[1];
rm_.setname(name);
rm_.setTotal(Integer.valueOf(objTotal.toString()));
tList.add(rm_);
}
rmList=null;
System.out.println(i);
}
} catch (Exception e) {
logger.error(ErrorTrace.getTrace(e));
return null;
}
return tList;
}
经分析后增加上排序语句【sb.append(" order by rm.id ");】,查询结果通过
public List<T> getForList(T t) {
List<T> tList = new ArrayList<T>();
StringBuffer sb = new StringBuffer(
"select rm,rm2.name from T rm,T2 rm2 Where 1=1 and rm.id=rm2.id ");
StringBuffer buffer = new StringBuffer(
"select count(*) from T rm,T2 rm2 Where 1=1 and rm.id=rm2.id ");
try {
if (null != rm.getname() || ("").equals(rm.getname())) {
sb.append("and rm.name like '%" + t.getname() + "%' ");
buffer.append("and rm.name like '%" + t.getname() + "%' ");
}
// sb.append(" order by rm.id ");
List<T> rmList = (List<T>) super.showPage(sb
.toString(), buffer.toString(), rm.getPage(), rm
.getPagesize());
if (rmList.size() != 0) {
Object objTotal = rmList.get(1);
Iterator it = ((Iterable<Throwable>) rmList.get(0)).iterator();
int i=0;
while (it.hasNext()) {
i++;
Object[] obj = (Object[]) it.next();
RgMethod rm_ = (RgMethod) obj[0];
String name = (String) obj[1];
rm_.setname(name);
rm_.setTotal(Integer.valueOf(objTotal.toString()));
tList.add(rm_);
}
rmList=null;
System.out.println(i);
}
} catch (Exception e) {
logger.error(ErrorTrace.getTrace(e));
return null;
}
return tList;
}
经分析后增加上排序语句【sb.append(" order by rm.id ");】,查询结果通过
相关文章推荐
- 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异
- Hibernate中使用Session操作数据以及部分简单HQL(hibernate query language)
- session.createSQLQuery(sql).list()与数据库中执行结果不一致 出现重复
- 使用Hibernate如何获得数据库表中的数据总量
- atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity
- hibernate查询出的数据和数据库不一致
- Yii 1.1.17 三、数据库连接、定义模型、数据查询、验证登录、SESSION使用与URL生成
- 关于Webdriver自动化测试时,页面数据与数据库id不一致的处理方式,需要使用鼠标事件
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- 使用eclipse的Hibernate插件创建session完成对数据库的记录追加
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity
- 故障:hibernate操作数据库时,可以正常添加数据库,但是使用下面的语句时,报错:Query为空。
- 使用hibernate查询时,查询的数据和数据库的不一样问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- 使用hibernate的createSQLQuery方法时,写sql语句,注意的地方
- 使用Sqoop,最终导入到hive中的数据和原数据库中数据不一致解决办法
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦