`
wang_decheng
  • 浏览: 47428 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
文章分类
社区版块
存档分类
最新评论

Hibernate 原生sql语句进行分页查询

阅读更多
public List findStockByStockPOAndTradeDate(int from, int size, StockPO po,
			Date tradeDate) {
		List list = new ArrayList();
		List result = new ArrayList();
		logger.info("##startfindStockByStockPOAndTradeDate");
		SimpleDateFormat sdf = new SimpleDateFormat("dd-M月-yy");
		String date = sdf.format(tradeDate);
		StringBuffer sql = new StringBuffer(
				"SELECT stkmp.* FROM STKMP stkmp INNER JOIN(SELECT  st.STOCK_ID stid ,st.COUNTRY cou FROM STKMP  st INNER JOIN stock sto ON st.STOCK_ID=sto.STOCK_ID and st.COUNTRY=sto.COUNTRY WHERE  sto.country='");
		sql.append(po.getStockPK().getCountry())
				.append("' AND  sto.mkt_type='").append(po.getMarketType())
				.append("' AND  sto.cur_type='").append(po.getCurrencyType());
		if (null != po.getStockPK().getStockNO()) {
			sql.append("'AND sto.STOCK_ID='").append(
					po.getStockPK().getStockNO());
		}
		if (null != po.getStockInternationalId()) {
			sql.append("'AND sto.STOCK_NID='").append(
					po.getStockInternationalId());
		}
		if (null != po.getStockReservationType4Entity()) {
			sql.append("' AND sto.SP_ENT= '").append(
					po.getStockReservationType4Entity());
		}
		if (null != po.getStockReservationType4Strip()) {
			sql.append("' AND sto.SP_PP= '").append(
					po.getStockReservationType4Strip());
		}
		if (null != po.getStockReservationType4TDCC()) {
			sql.append("' AND sto.SP_TSCD= '").append(
					po.getStockReservationType4TDCC());
		}
		sql
				.append(
						"' GROUP BY st.STOCK_ID ,st.COUNTRY) stock2 ON stkmp.STOCK_ID=stock2.stid AND stkmp.TRADE_DATE='")
				.append(date)
				.append(
						"' and stkmp.COUNTRY=stock2.cou ORDER BY stkmp.TRADE_DATE desc");

		this.getSession().clear();
		Query query = this.getSession().createSQLQuery(sql.toString())
				.addEntity("stkmp", StockMarketPricePO.class);
		query.setMaxResults(size);
		query.setFirstResult(from);
		result = query.list();
		logger.info("##message"+result.size());
		list.add(0, result);
		StringBuffer sqltest = new StringBuffer(
				"SELECT count(*) FROM STKMP stkmp INNER JOIN(SELECT  st.STOCK_ID stid ,st.COUNTRY cou FROM STKMP  st INNER JOIN stock sto ON st.STOCK_ID=sto.STOCK_ID and st.COUNTRY=sto.COUNTRY WHERE  sto.country='");
		sqltest.append(po.getStockPK().getCountry()).append(
				"' AND  sto.mkt_type='").append(po.getMarketType()).append(
				"' AND  sto.cur_type='").append(po.getCurrencyType());
		if (null != po.getStockPK().getStockNO()) {
			sqltest.append("'AND sto.STOCK_ID='").append(
					po.getStockPK().getStockNO());
		}
		if (null != po.getStockInternationalId()) {
			sqltest.append("'AND sto.STOCK_NID='").append(
					po.getStockInternationalId());
		}
		if (null != po.getStockReservationType4Entity()) {
			sqltest.append("' AND sto.SP_ENT= '").append(
					po.getStockReservationType4Entity());
		}
		if (null != po.getStockReservationType4Strip()) {
			sqltest.append("' AND sto.SP_PP= '").append(
					po.getStockReservationType4Strip());
		}
		if (null != po.getStockReservationType4TDCC()) {
			sqltest.append("' AND sto.SP_TSCD= '").append(
					po.getStockReservationType4TDCC());
		}
		sqltest
				.append(
						"' GROUP BY st.STOCK_ID ,st.COUNTRY) stock2 ON stkmp.STOCK_ID=stock2.stid AND stkmp.TRADE_DATE='")
				.append(date)
				.append(
						"' and stkmp.COUNTRY=stock2.cou ORDER BY stkmp.TRADE_DATE desc");

		this.getSession().clear();
		Query querycount = this.getSession().createSQLQuery(sqltest.toString());
		int count = ((BigDecimal) querycount.uniqueResult()).intValue();
		logger.info("##endfindStockByStockPO" + list.size() + "--" + count);
		list.add(1, new Integer(count));
		return list;
	}
 
分享到:
评论
1 楼 waw0931 2016-05-19  
分页在哪里?

相关推荐

    最全Hibernate 参考文档

    10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出(flush) 10.11. 传播性持久化...

    Hibernate教程

    11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    Hibernate3+中文参考文档

    10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出(flush) 10.11. 传播性持久化...

    hibernate3.04中文文档.chm

    11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    hibernate 框架详解

    使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    sqltoy-orm框架系统-其他

    4、最强大的分页查询:很多人第一次了解到何为快速分页、分页优化这种极为巧妙的处理,还有在count语句上的极度优化。 5、跨数据库函数方言替换,如:isnull/ifnull/nvl、substr/substring 等不同数据库。 sqltoy-...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题74:sql语句优化小技巧 Java面试题75:批量插入几百万条数据 Java面试题76:有没有使用过redis Java面试题77:redis的使用场景 Java面试题78:redis存储对象的方式 Java面试题79:redis数据淘汰机制 Java...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题74:sql语句优化小技巧.mp4 │ Java面试题75:批量插入几百万条数据.mp4 │ Java面试题76:有没有使用过redis.mp4 │ Java面试题77:redis的使用场景.mp4 │ Java面试题78:redis存储对象的方式.mp4 │...

    java开源包1

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包11

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包2

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包7

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包101

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

Global site tag (gtag.js) - Google Analytics