斷點

          每天進步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          表外鍵在SQL語句中的用法

          Posted on 2010-01-13 23:26 斷點 閱讀(404) 評論(0)  編輯  收藏 所屬分類: Hibernate
          有兩張表(question、answer),它們存在著一對多關系(question->answer)和多對一關系(answer->question)。

          在Answer.java中定義有:
          public class Answer {
              private String userid;
              private Question question;
              private int qid;
          }

          在answer.hbm.xml中有:
           <many-to-one name="question" class="org.lxh.myzngt.vo.Question" fetch="select">
                      <column name="qid" />
           </many-to-one>

          所以SQL語句如下:

          public List queryByUserAnswer(String userid, int currentPage, int lineSize) {
                  List all = null;
                  String hql = "from Question as q where q.qid in(select a.question.qid from Answer as a where a.userid=?)";
                  Query q = super.getSession().createQuery(hql);
                  q.setString(0, userid);
                  // 分頁操作。
                  q.setFirstResult((currentPage - 1) * lineSize);
                  q.setMaxResults(lineSize);
                  all = q.list();
                  return all;
              }

          否則報錯:

          org.hibernate.QueryException: could not resolve property: qid of: org.lxh.myzngt.vo.Answer [select count(q.qid) from org.lxh.myzngt.vo.Question as q where q.qid in(select a.qid from org.lxh.myzngt.vo.
          Answer as a where a.userid=?)]

          posted @ 2009-02-23 15:58 斷點 閱讀(173) | 評論 (0)

          主站蜘蛛池模板: 汉中市| 通州市| 五峰| 台东县| 浮山县| 刚察县| 轮台县| 阿瓦提县| 称多县| 蓬安县| 武功县| 甘德县| 伊川县| 吴江市| 德阳市| 卢湾区| 同仁县| 沁阳市| 安龙县| 新余市| 石阡县| 连江县| 尼木县| 无极县| 瓦房店市| 龙川县| 交口县| 雅江县| 霍邱县| 九寨沟县| 安国市| 太保市| 滦南县| 吐鲁番市| 磐石市| 新竹市| 永平县| 绿春县| 桐梓县| 长汀县| 凤山市|