浏览 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 希望大家多多给与指教,谢谢! 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |



