斷點

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

          表外鍵在SQL語句中的用法

          Posted on 2010-01-13 23:26 斷點 閱讀(408) 評論(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)

          主站蜘蛛池模板: 茂名市| 水富县| 达尔| 万荣县| 阿合奇县| 石屏县| 阿鲁科尔沁旗| 分宜县| 五河县| 越西县| 贡山| 龙南县| 嘉鱼县| 封丘县| 南郑县| 葵青区| 疏附县| 嘉义市| 吴忠市| 开阳县| 安阳市| 柳林县| 安塞县| 齐河县| 北安市| 汉阴县| 象山县| 景谷| 随州市| 油尖旺区| 沁阳市| 彭水| 鹿邑县| 称多县| 锦州市| 通城县| 华蓥市| 华池县| 和林格尔县| 云南省| 八宿县|