hibernate用sql联合查询数据库

@RequestMapping(value = "/FeedPager.cqzk")
    @ResponseBody
    public String url_sa1(HttpServletRequest request, BootPage page)
            throws ServletException, IOException, RuntimeException {
        @SuppressWarnings("unchecked")
        BootPage pager = feedBackDao.getBySQLPage("select Feedback.id,Feedback.title,Feedback.content," +
                "Feedback.creattime,Rms_User.user_name from t_Feedback Feedback,Rms_User where Feedback.userId = Rms_User.user_id ", page, null);
        System.out.println((JSONArray.fromObject(pager)).getString(0).toString());
        System.out.println((JSONArray.fromObject(pager)).getString(0).toString());
        return (JSONArray.fromObject(pager)).getString(0).toString();
    }
public BootPage getBySQLPage(String hql,BootPage pager,Map<String, Object> condition){
        if (pager == null) {
            throw new IllegalArgumentException("分页 不能为空!");
        }
        
        Query q = sessionFactory.getCurrentSession().createSQLQuery(hql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);;
        q.setFirstResult(pager.getOffset());
        q.setMaxResults(pager.getLimit());
        if(condition!=null){
            Iterator<?> iter = condition.keySet().iterator();
            while (iter.hasNext()) {
                String paramName = (String) iter.next();
                Object paramValue = condition.get(paramName);
                q.setParameter(paramName, paramValue);
            }
        }
        pager.setRows(q.list());
        pager.setTotal(this.countAllSQL(hql,condition));
        return pager;
        
    }
    protected Long countAllSQL(String hql, Map<String, Object> condition) {
        if (hql == null) {
            return 0l;
        }
        String sql = " select count(*) total from ( " + hql + " ) as temp ";        
        Query q = sessionFactory.getCurrentSession().createSQLQuery(sql);
        if(condition!=null){
            Iterator<?> iter = condition.keySet().iterator();
            while (iter.hasNext()) {
                String paramName = (String) iter.next();
                Object paramValue = condition.get(paramName);
                q.setParameter(paramName, paramValue);
            }
        }
        return  new Long(((Integer) q.uniqueResult()).intValue());
    }
时间: 2024-12-08 00:14:28

hibernate用sql联合查询数据库的相关文章

数据库sql联合查询mid类型的分页数据取不了全部的值错误

USE [Travel]GO/****** Object:  StoredProcedure [dbo].[NoticeGetPagedData]    Script Date: 06/13/2014 20:44:51 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[NoticeGetPagedData]@pageIndex int = 1,--页码@pageSize int =10,--页容量

SQL 联合查询 + XML解析

(select a.EBILLNO, a.EMPNAME, a.APPLYDATE, b.HS_NAME, replace(replace(a.SUMMARY,char(10), ''),char(13),'') as SUMMARY, cast(c.XmlData as XML).value('(/List/item/No/text())[1]','NVARCHAR(300)') as No, cast(c.XmlData as XML).value('(/List/item/zje/text

SQL联合查询(内联、左联、右联、全联)语法

SQL联合查询(内联.左联.右联.全联)语法 概述: 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join  .全联full outer join 的好处及用法. 联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构            (用户名,密码) userid(int) username            varchar(20) password       

sql server 查询数据库所有的表名+字段

原文:sql server 查询数据库所有的表名+字段 SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空       a.colorder as 字段序号,       a.name as 字段名,       (case when COLUMNPROPER

SQL联合查询:子表任一记录与主表联合查询

今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as b where b.CgId =a.ID)as bid from A as a ) as temp left join B as b2 on temp.bid=b2.Id

hibernate 多表联合查询

以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQL没多大差别. hibernate很多实现都是靠喜欢配关系,但是如果两张表,数据量都非常大的时候,并不合适配关系. 例如:student表和score表需要做联合查询. 1)sql: select s.id,s.name,sc.score from student as s,score as sc

SQL Server查询数据库空间分配情况、数据库备份信息

查询数据库空间分配情况: 1 use master 2 go 3 create procedure dbo.proc_getdbspaceused 4 as 5 begin 6 set nocount on 7 create table #dbsize( 8 database_id int 9 ,database_name nvarchar(1024) 10 ,size_kb bigint 11 ,space_available_kb bigint 12 ,reserved_kb bigint

SQL联合查询中的关键语法(转)

联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码)    userid int         username   varchar(20)     password       varchar(20) 1                    jack                           jackpwd 2                    owen                        owenpwd t3表结构(用户积分,等级)    u

SQL联合查询中的关键语法

联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码)    userid int         username   varchar(20)     password       varchar(20) 1                    jack                           jackpwd 2                    owen                        owenpwd t3表结构(用户积分,等级)    u