如何使用 Hibernate操作SQL数据库中视图所返回的结果 的集合

kontorhs 2008-04-04 12:52:23
xx.hbm.xml文件内容:
 
<hibernate-mapping>
<class name="DBDAO.ViewUserQuestion" table="view_User_Question" schema="dbo" catalog="BBSDB">
<composite-id name="id" class="DBDAO.ViewUserQuestionId">
<key-property name="qid" type="java.lang.Integer">
<column name="qId" />
</key-property>
<key-property name="qtId" type="java.lang.Integer">
<column name="qtId" />
</key-property>
<key-property name="qtitle" type="java.lang.String">
<column name="qTitle" length="100" />
</key-property>
<key-property name="qintegral" type="java.lang.Integer">
<column name="qIntegral" />
</key-property>
<key-property name="pubName" type="java.lang.String">
<column name="pubName" length="20" />
</key-property>
<key-property name="pubUid" type="java.lang.Integer">
<column name="pubUId" />
</key-property>
<key-property name="pubTime" type="java.util.Date">
<column name="pubTime" length="23" />
</key-property>
<key-property name="revertName" type="java.lang.String">
<column name="revertName" length="20" />
</key-property>
<key-property name="revertUid" type="java.lang.Integer">
<column name="revertUId" />
</key-property>
<key-property name="rvtTime" type="java.util.Date">
<column name="rvtTime" length="23" />
</key-property>
<key-property name="qstate" type="java.lang.Integer">
<column name="qState" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>

xxDAO类中:
 public List getVeiwUserQuestionByTid(int tid){
String sql="from ViewUserQuestion v where v.id.qtId=2";//+tid;
List list=viewDB.getView(sql);
System.out.println("查询类DAO中list大小:"+list.size());


for(int i=0;i<list.size();i++){
ViewUserQuestion vq=(ViewUserQuestion)list.get(i);
System.out.println("查询类DAO中list类型:"+vq);
}

//viewDB.destory();
return list;
}

打印的结果:
  Session开始
  查询类DAO中list大小:2
  查询类DAO中list类型:DBDAO.ViewUserQuestion@14937e2
  查询类DAO中list类型:null

查询的结果也应该是两条记录。。
    可是为什么获取第二条时为空。。。
              
            

...全文
325 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
maodie007 2008-08-09
  • 打赏
  • 举报
回复
一般与联合主键有关,联合主键你必须重写equals和hashcode方法。若不重写将可能出现查询出来的数据和数据库实际数据不匹配的问题

我的建议是你在视图里找一个不重复的字段 让它来做hibernate的主键(只要在配置文件里写明,不必改动数据库)

那么肯定是没问题的。
jinsu_st 2008-08-05
  • 打赏
  • 举报
回复
List list=viewDB.getView(sql);

能把方法 getView(sql) 贴上来看看么?

觉得问题应该出在这里。

jiaozhantao 2008-08-01
  • 打赏
  • 举报
回复
不懂,太多了,先顶一下
dengtujian 2008-05-21
  • 打赏
  • 举报
回复
我也有这种情况,还没有解决。。。。。期待中
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
Unending 2008-04-05
  • 打赏
  • 举报
回复
顶一下,不懂

24,920

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧