我写了一个sql_query 如下:
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.xinnet.counter.dao.domain"
auto-import="true"> <class name="VisitsLineChartByHour">
<id name="id" column="id" type="string" length="32">
</id>
<property name="number" column="number" type="double"
length="11" />
<property name="hour" column="hour" type="string"
length="4" /> </class>
<sql-query name="com.xinnet.counter.dao.domain.VisitsLineChartByHour">
<return alias="vlcbh" class="VisitsLineChartByHour">
<return-property name="id" column="id" />
<return-property name="number" column="number" />
<return-property name="hour" column="hour" > </return-property> </return>
<![CDATA[
select c.date as id,
count(*) as number,
c.hour as hour
from
counter c where
(c.eventTitle =:eventTitle or :eventTitle is null or :eventTitle='')
and (c.bannerName =:bannerName or :bannerName is null or :bannerName='')
and (:timeFrom is null or :timeFrom='' or c.date >= :timeFrom)
and (:timeEnd is null or :timeEnd='' or c.date <= :timeEnd)
and (:fromHour is null or :fromHour='' or c.hour >= :fromHour)
and (:endHour is null or :endHour='' or c.hour <= :endHour)
group by c.hour,c.date
order by c.hour ]]>
</sql-query>
</hibernate-mapping> 在自己的service里调用此query; Map paramer=new HashMap(); paramer.put("timeFrom", timeFrom); paramer.put("timeEnd", timeEnd); paramer.put("eventTitle", eventTitle); paramer.put("bannerName", bannerName); paramer.put("fromHour", Integer.parseInt(fromHour)); paramer.put("endHour",Integer.parseInt(endHour) ); List list=daoService.getQueryServiceByQueryName("com.xinnet.counter.dao.domain.VisitsLineChartByHour", paramer).list(); 在数据库里单执行语句得到结果如下:
number date hour
575 2008-10-08 14
636 2008-10-08 15
656 2008-10-08 16
472 2008-10-08 17
201 2008-10-08 18
155 2008-10-08 19
210 2008-10-08 20
237 2008-10-08 21 可返回的list里所有pojo的hour值都是14
实在不知道哪出错了,请高手赐教!!
等。很急啊
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.xinnet.counter.dao.domain"
auto-import="true"> <class name="VisitsLineChartByHour">
<id name="id" column="id" type="string" length="32">
</id>
<property name="number" column="number" type="double"
length="11" />
<property name="hour" column="hour" type="string"
length="4" /> </class>
<sql-query name="com.xinnet.counter.dao.domain.VisitsLineChartByHour">
<return alias="vlcbh" class="VisitsLineChartByHour">
<return-property name="id" column="id" />
<return-property name="number" column="number" />
<return-property name="hour" column="hour" > </return-property> </return>
<![CDATA[
select c.date as id,
count(*) as number,
c.hour as hour
from
counter c where
(c.eventTitle =:eventTitle or :eventTitle is null or :eventTitle='')
and (c.bannerName =:bannerName or :bannerName is null or :bannerName='')
and (:timeFrom is null or :timeFrom='' or c.date >= :timeFrom)
and (:timeEnd is null or :timeEnd='' or c.date <= :timeEnd)
and (:fromHour is null or :fromHour='' or c.hour >= :fromHour)
and (:endHour is null or :endHour='' or c.hour <= :endHour)
group by c.hour,c.date
order by c.hour ]]>
</sql-query>
</hibernate-mapping> 在自己的service里调用此query; Map paramer=new HashMap(); paramer.put("timeFrom", timeFrom); paramer.put("timeEnd", timeEnd); paramer.put("eventTitle", eventTitle); paramer.put("bannerName", bannerName); paramer.put("fromHour", Integer.parseInt(fromHour)); paramer.put("endHour",Integer.parseInt(endHour) ); List list=daoService.getQueryServiceByQueryName("com.xinnet.counter.dao.domain.VisitsLineChartByHour", paramer).list(); 在数据库里单执行语句得到结果如下:
number date hour
575 2008-10-08 14
636 2008-10-08 15
656 2008-10-08 16
472 2008-10-08 17
201 2008-10-08 18
155 2008-10-08 19
210 2008-10-08 20
237 2008-10-08 21 可返回的list里所有pojo的hour值都是14
实在不知道哪出错了,请高手赐教!!
等。很急啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货