报标题的错误,是因为在 select count的时候,不需要fetch

所以在取完count以后,再把fetch加进去,变成left join  fetch

/**
* 请把jhql以o为返回对象,例如“from user o where”
*
* @param jhql
* @param pageSize
* @param page
* @return
*/
public <T> Page<T> getPageListByJHQL(String jhql, int pageSize, int page) {
StringBuffer countHql = new StringBuffer("select count(o) ");
StringBuffer singleHql = new StringBuffer("select o ");
Query countQuery = em.createQuery(countHql.append(jhql).toString());

long count = (Long) countQuery.getSingleResult();

if (count == 0)
return null;

int index = (page - 1) * pageSize;

Query query = em.createQuery(singleHql.append(
jhql.replace("left join", "left join fetch")).toString());

List<T> list = query.setMaxResults(pageSize).setFirstResult(index)
.getResultList();

em.clear(); // 分离内存中受EntityManager管理的实体bean,让VM进行垃圾回收

PageRequest pageRequest = new PageRequest(page, pageSize);

Page<T> pageList = new PageImpl<T>(list, pageRequest, count);
return pageList;
}

query specified join fetching, but the owner of the fetched association was not present in the select list的更多相关文章

  1. MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?

    项目中,评论数,关注数等数据,是实时更新的.+1,-1 这种. 有的时候,可能统计不准确. 需要写一个统计工具,更新校准下. 用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了. 为了简单起见 ...

  2. hibernate left join fetch 出错的问题

    1.首先说说manyToOne的问题 比如一个用户所在的组织机构,可能是多个,最多是四个,然后userEntity有下的代码: 关联查询: 第一种方式:代码如下 StringBuilder sql = ...

  3. Python操作MySQL:pymysql和SQLAlchemy

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  4. HQL: The Hibernate Query Language

    Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...

  5. Hive 文件格式 & Hive操作(外部表、内部表、区、桶、视图、索引、join用法、内置操作符与函数、复合类型、用户自定义函数UDF、查询优化和权限控制)

    本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语 ...

  6. Zip, Join, GroupJoin

    Zip 合并兩個序列,產生一個新的對象序列,但連接方式是一对一的(即序列1和第一项连接序列2的第一项),所以最终结果会在较短的序列处终止. Zip在這裏不是壓縮的意思,而是拉鏈,意爲連接兩個序列 Pe ...

  7. Nested Loops join时显示no join predicate原因分析以及解决办法

    本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...

  8. Cross join in excel --- Copy from Internet

    Set up the Workbook In this example, there are two tables -- Raw Materials and Packaging -- and each ...

  9. 原创: How to build a query based on Definition Updates installed

    In SCCM 2012 R2, you can use following class. Use SMS_CombinedDeviceResources.EPAntivirusSignatureLa ...

随机推荐

  1. 【转】六年软件测试感悟-从博彦到VMware

    不知不觉已经从事软件测试六年了,2006毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企.六年的时间过得真快. 长期的测试工作也让我对软件测试有了比较深入的认识.但是我至今还是一个底层的 ...

  2. Linux下配置文件的位置

    系统级的配置存放在 /etc 目录中.用户级的配置存放在用户的主目录 /home/user_login_name. SHELL 默认文件 /etc/bashrc – bash shell 的系统级默认 ...

  3. IE升级代码时邮件内容

    TypeErrorUnable to set property 'value' of undefined or null reference. 但是可以进入添加页面,填完信息后,submit后跳转至 ...

  4. MyBatis(3.2.3) - Configuring MyBatis using XML, typeHandlers

    As discussed in the previous chapter, MyBatis simplifies the persistent logic implementation by abst ...

  5. Linux 命令 - find: 搜索文件

    find 命令可以依据文件的各种属性在既定的目录(及其子目录)里搜索文件. 命令格式 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [e ...

  6. MongoDB - Introduction to MongoDB

    MongoDB is an open-source document database that provides high performance, high availability, and a ...

  7. IOS 解析JSON

    - (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view, t ...

  8. 项目中的那些事---JavaScript

    一.String.charAt(index) 作用:获取字符串指定索引位置的字符 注意:index的值是0~(字符串长度-1)之间的值 <script type="text/javas ...

  9. Libcurl笔记三

    一,post请求和回报处理 //"host/path?extra" //strHttp=" http://portal.liuhan.com:/web/getConfig ...

  10. xposed系列教程

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/xposed-series/ 说明 这是一篇XPOSED开发系列教程, 个人开发者,开发不容易.QQ群: 73 ...