hibernate中,关于类继承后,导致分页取出结果集数量错误的严重问题,请各位帮忙。
CmsArticle.hbm.xml 是CmsArticle.java的映射文件  
<class  
     name="pojo.CmsArticle"  
     table="tbnc_CMSarticle"  
     dynamic-update="true"        
>  
----------------------------------------------  
CmsArticleNew.hbm.xml 是CmsArticleNew.java的映射文件  
<class  
     name="pojo.CmsArticleNew"  
     table="tbnc_CMSarticle"  
     dynamic-update="true"        
>  
------------------------------------------  
hibenate.hbm.xml  
<mapping resource="pojo/CmsArticle.hbm.xml" />  
<mapping resource="pojo/CmsArticleNew.hbm.xml" />  
------------------------------------------  
CmsArticleNew继承CmsArticle类,  
注意:CmsArticle类仅仅多了一个clob类型的字段而已,其他字段属性与CmsArticleNew.java一致。  
------------------------------------------  
String quert= "select o,a from PubArticleOperation o,CmsArticle a where o.flag='1' " +  
"and a.articleId=o.docid and o.rootid in ('1')";  
pageNo=1  
pageSize=100  
public static List find(String query, int pageNo, int pageSize) throws DAOException {  
     Session session = SessionManager.getSession();  
     List list;  
     try {  
       Query q = session.createQuery(query);  
       q.setFirstResult( (pageNo - 1) * pageSize); ////////只有这两行注释了,才有结果集>0  
       q.setMaxResults(pageSize); ///////////////////只有这两行注释了,才有结果集>0  
       list = q.list();  
     }catch (
HibernateException he) {  
       if (log.isErrorEnabled()) {  
         log.error("Error:find method error!", he);  
       }  
       throw new DAOException(he);  
     }finally {  
       if (session != null && session.isOpen()) {  
         SessionManager.closeSession(session);  
       }  
     }  
     return list;  
   }  
得出的结果集合是零,而实际上数据库符合条件的记录是110条,  
如果将其:  
     // q.setFirstResult( (pageNo - 1) * pageSize); ////////只有这两行注释了,才有结果集>0  
     // q.setMaxResults(pageSize); ///////////////////只有这两行注释了,才有结果集>0  
注释了,那么得出的结果集合>0,但不是110条,而是220条(即双倍)。  
而问题的根源我发现了,但不知道如何解决。  
问题的关键是CmsArticleNew.JAVA继承了CmsArticle.java  
如果不是继承,那么得出的结果是正确的,即为110条。
------解决方案--------------------
------解决方案--------------------把你的影射文件完整的贴出来看看吧。
你说:
CmsArticleNew继承CmsArticle类, 
注意:CmsArticle类仅仅多了一个clob类型的字段而已,其他字段属性与CmsArticleNew.java一致。 
也就是说,夫类比子类多一个clob类型的字段?没有说反吗?
------解决方案--------------------q.setFirstResult( (pageNo - 1) * pageSize);
前取到结果了么???
------解决方案--------------------父类比子类多一个属性?