您的位置:程序门 -> java -> web 开发



hibernate hql语句问题 请各位大侠帮帮我


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


hibernate hql语句问题 请各位大侠帮帮我
发表于:2007-07-23 11:19:33 楼主
各位大侠   我现在有四个表   主表tasks   它的主键taskid   和其他三个表hibernate映射外键关联,现在我想查询   这三个表所有的taskid和主表taskid相对应的记录。怎么实现啊?
select   taskid   from   tbl_tasks   where   taskid   in(select   taskid   from   "+tblname[0]+ "   union   select   taskid   from   "+tblname[1]+ "   union   select   taskid   from   "+tblname[2]+ ")   order   by   taskid   desc ";

这是用sql写的语句   怎么写成hql呢?
发表于:2007-07-23 12:50:371楼 得分:0
已经用了hibernate了,还用得着拼些语句吗?
映射了关系后,对象就有getxxx()方法得到有关系表的对象了。
好好看下。
发表于:2007-07-23 13:13:382楼 得分:0
这是sql语句   session.createsqlquery(sql)是可以执行了,但是不支持分页技术。
分页技术返回的对象是bigdecimal的,object对象强转不过去。

所以得写成hql   形式的
就是不知道怎么写??
发表于:2007-07-23 13:14:483楼 得分:0
public   string[]   getstattblname(int   stattype)
        {
                string[]   tblname   =   null   ;
                switch(stattype)
                {
                case   1:  
                        tblname   =   new   string[]{ "t.real_delay_losses ", "t.real_availbws ", "t.real_neck_locates "};
                        break;
                case   2:
                        tblname   =   new   string[]{ "t.day_delay_losses ", "t.day_availbws ", "t.day_neck_locates "};
                        break;
                case   3:
                        tblname   =   new   string[]{ "t.week_delay_losses ", "t.week_availbws ", "t.week_neck_locates "};
                        break;
                case   4:
                        tblname   =   new   string[]{ "t.month_delay_losses ", "t.month_availbws ", "t.month_neck_locates "};
                        break;
                }
                return   tblname;
        }


快速检索

最新资讯
热门点击