DetachedCriteria分页中有重复记录的问题
来源:互联网 发布:6星御魂副属性成长数据 编辑:程序博客网 时间:2024/06/06 01:47
userinfo表和roleinfo表,二者为多对多关系,通过关联表userinfo_roleinfo连接。
通过public List <UserInfo> getInfos(int firstResult)方法获取要在一页中显示的数据。
userinfo数据: userinfo_roleinfo数据: roleinfo数据:
userId username userId roleId roleId roleName
1 user1 1 1 1 role1
2 user2 2 1 2 role2
3 user3 3 1
4 user4 4 1
5 user5 1 2
6 user6 5 1
使用DetachedCriteria
- Java code
- public List<UserInfo> getInfos(int firstResult){ log.debug("finding specified UserInfo instances"); try { DetachedCriteria criteria = DetachedCriteria.forClass(UserInfo.class) return getHibernateTemplate().findByCriteria(criteria, firstResult, 3); } catch (RuntimeException re) { log.error("find failed", re); throw re; }}
由于是left outer join,所以执行getInfos(0)有重复数据。得到的三个UserInfo的实例id为:1,1,2,前两个重复。
加上setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY),后去掉了重复结果,但只得到两个UserInfo的实例。
这种情况下分页会出现问题。
改用下面的方法就没有问题了:
- Java code
- public List<UserInfo> getInfos(int firstResult){ log.debug("finding specified UserInfo instances"); try { String queryString = "from UserInfo"; Query query = this.getSession().createQuery(queryString); query.setFirstResult(firstResult); query.setMaxResults(3); return query.list(); } catch (RuntimeException re) { log.error("find failed", re); throw re;}
执行getInfos(0),得到的是id为1,2,3的三个UserInfo实例。
但是,这种方法会执行一堆的sql语句,很恐怖。
暂时没有发现用DetachedCriteria实现需求的做法。如果哪位有解决办法,请分享一下
- DetachedCriteria分页中有重复记录的问题
- 分页数据有重复的问题
- 在DetachedCriteria中去掉重复行
- hibernate DetachedCriteria 分页不支持排序问题
- 解决中记录重复问题
- 分页显示,重复记录
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 利用hibernate的DetachedCriteria进行分页
- .学知网是个有5000G学习资料的下载网站
- Subversion版本管理器简单配置说明
- ORACLE触发器调试
- 对自己经历的一点总结和呵斥
- Linux 2.6 内核安装ALSA驱动
- DetachedCriteria分页中有重复记录的问题
- 研发人员为什么留不住?(4)——原因的解析(下)
- Tomcat 不能访问jsp解决办法
- Invalidate()
- 一个人
- JAVA - How to Write Doc Comments
- zz.NET开发人员必知的八个网站
- Myeclipse 在线安装svn
- web.xml中的3种写法