论坛首页 Java版 Hibernate

hql问题

浏览 1271 次
锁定老贴子 主题:hql问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2005-05-15
最近开始学习Hibernate,就用手头上的一个项目中的一个页面试了一下,可是不知HQL该如何写,希望大家多多指教。
想做的工作如下:
一个研究所内有许多从杂志,报纸上收集的文章,这些文章分别保存在杂志文件夹和报纸文件夹内(文件夹是复数个),现有做个程序来管理这些文章和文件夹。
现有三个表T001Journal.hbm(杂志文章),T002Newsparper.hbm (报纸文章),M002File.hbm(文件夹)。
文件夹内的字段FILETYPE=1的时候,代表杂志文件夹,FILETYPE=2的时候,代表报纸文件夹,该字段起着文件夹分类作用。
杂志文章表和报纸文章表内都有”保存文件夹ID”字段,该字段和文件夹表内的FILEID字段对应。
文件夹的定义如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping package="org.pojo">
<class name="M002File" table="M002_FILE">
<composite-id class="M002FilePK" name="Id">
<key-property
column="FILETYPE"
name="Filetype"
type="string"
/>
<key-property
column="FILEID"
name="Fileid"
type="integer"
/>
</composite-id>
<property
column="UPDATEDATE"
length="7"
name="Updatedate"
not-null="false"
type="date"
/>
<property
column="CREATEDATE"
length="7"
name="Createdate"
not-null="false"
type="date"
/>
<property
column="FILENAME"
length="200"
name="Filename"
not-null="false"
type="string"
/>
<!--
<many-to-one name="t001Journal" column="Id" class="org.pojo.T001Journal"   outer-join="auto" />
-->
</class>
</hibernate-mapping>

现想查出所有的杂志文件夹以及各文件夹内的文章数。
如果用SQL语句的话如下
SELECT a.FILEID,a.FILENAME,COUNT(a.FILEID) As countNumber,b.CONSERVATIONID FROM M002_FILE a LEFT JOIN T001_JOURNAL b ON a.FILEID=b.CONSERVATIONID
WHERE a.FILETYPE='1' GROUP BY a.FILEID,a.FILENAME,b.CONSERVATIONID ORDER BY a.FILEID

我用HQL也作了一下,可是结果是所有的文章数,并非个个文件夹里的文章数。
SELECT a.Id.Fileid ,a.Filename, count(a.Id.Fileid) FROM org.pojo.M002File as  a  inner join a.Id.Fileid as f1, org.pojo.T001Journal as  b  left join  b.Conservationid as f2  WHERE a.Id.Filetype='1' GROUP BY a.Id.Fileid,a.Filename

希望大家多多给与指教,谢谢!
   
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐