Hibernate不支持select子查询、from子查询、不支持on关键字--- 解决办法。

 

RT。

PL/SQL中验证SQL正确,但是转成HQL语句出现若干错误,多方寻找之后发现原来是Hibernate问题

不支持select子查询、from子查询、* 查询,on 关键字 等复杂查询...

 

 


 解决方案1:

若页面非封装POJO对象输出数据,可在Hibernate中使用本地SQL查询,籍此解决问题。

public List queryAgentPaperStatus(String planID,String userCode,int perAgents){
		
		List agentPaperStatus = new ArrayList();
		
		String sql = "select user_name, to_char(" +perAgents+ " - to_number(qc)) ac from " +
					"(select * from " +
							"(select user_name, user_code from tbl_sys_users  where user_code in " +
									"(select user_code  from tbl_qc_vgroup_users where plan_id like '" + planID + "')) lc" +
					" left join " +
							"(select agent_code, count(*) qc from tbl_qc_paper group by ID, agent_code having ID in " +
									"(select paper_id from tbl_qc_paper_dispose where plan_id like '" + planID + "' and qc_user_code like '" + userCode + "')) rc" +
					" on lc.user_code = rc.agent_code)";
		
        System.out.println("----------------- :"+sql);
		
		try{  	  
			agentPaperStatus = this.getHibernateTemplate().getSessionFactory().getCurrentSession()
					.createSQLQuery(sql.toString()).list();  
	              
	        }catch(Exception e){  
	            e.printStackTrace();   
	        }  
	        
		return agentPaperStatus;
}

 

解决方案2:

若页面封装POJO对象输出数据,可建立视图替代子查询部分,籍此解决问题

 

 

 

 

介于工作时间,一般都使用上述两种方法解决,网上还有其他解决方法,未试过~~


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值