隨筆-8  評論-19  文章-2  trackbacks-0

          ????? 由于視圖沒有主鍵,所以在用hibernate對視圖操作就需要做點處理了,網上搜了一通也沒能找到相關文章,后來突然想到了myeclipse可以幫助生成hibernate的配置文件和對應的pojo代碼。
          ????? 打開myeclipse,選擇相關的視圖,生成了配置文件和pojo類,發現pojo類生成了兩個,而配置文件卻一個,參看了配置文件和類,明白了是怎么回事。生成的配置文件通過了組合的方式生成,所以會對應兩個類,一個類主要存放id信息,以個類存放對應的字段信息。
          ????? 下面是生成的類和配置文件:
          類:
          public class AllTablePb implements Serializable {

          ?// Fields
          ?private AllTablePbId id;

          ?// Property accessors
          ?public AllTablePbId getId() {
          ? return this.id;
          ?}

          ?public void setId(AllTablePbId id) {
          ? this.id = id;
          ?}
          }

          public class AllTablePbId implements java.io.Serializable {

          ?// Fields

          ?private String owner;

          ?private String tableName;

          ?private String columnName;

          ?private String dataType;

          ?private String pbcCnam;

          ?private String pbcCmnt;

          ?// Property accessors

          ?public String getOwner() {
          ? return this.owner;
          ?}

          ?public void setOwner(String owner) {
          ? this.owner = owner;
          ?}

          ?public String getTableName() {
          ? return this.tableName;
          ?}

          ?public void setTableName(String tableName) {
          ? this.tableName = tableName;
          ?}

          ?public String getColumnName() {
          ? return this.columnName;
          ?}

          ?public void setColumnName(String columnName) {
          ? this.columnName = columnName;
          ?}

          ?public String getDataType() {
          ? return this.dataType;
          ?}

          ?public void setDataType(String dataType) {
          ? this.dataType = dataType;
          ?}

          ?public String getPbcCnam() {
          ? return this.pbcCnam;
          ?}

          ?public void setPbcCnam(String pbcCnam) {
          ? this.pbcCnam = pbcCnam;
          ?}

          ?public String getPbcCmnt() {
          ? return this.pbcCmnt;
          ?}

          ?public void setPbcCmnt(String pbcCmnt) {
          ? this.pbcCmnt = pbcCmnt;
          ?}

          }

          配置文件:
          <hibernate-mapping>
          ?<class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
          ? <composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
          ?? <key-property name="owner" type="string">
          ??? <column name="OWNER" length="30" />
          ?? </key-property>
          ?? <key-property name="tableName" type="string">
          ??? <column name="TABLE_NAME" length="30" />
          ?? </key-property>
          ?? <key-property name="columnName" type="string">
          ??? <column name="COLUMN_NAME" length="30" />
          ?? </key-property>
          ?? <key-property name="dataType" type="string">
          ??? <column name="DATA_TYPE" length="106" />
          ?? </key-property>
          ?? <key-property name="pbcCnam" type="string">
          ??? <column name="PBC_CNAM" length="30" />
          ?? </key-property>
          ?? <key-property name="pbcCmnt" type="string">
          ??? <column name="PBC_CMNT" length="254" />
          ?? </key-property>
          ? </composite-id>
          ?</class>
          </hibernate-mapping>
          這樣就可以通過AllTablePb.getId()取得相關的信息。
          ????? 感覺myeclipse的確不錯,特別是對于使用hibernate還不是非常熟練的人來說,通過它可以幫解決不少問題。
          ????? 通過這樣對視圖的操作,同樣也可以用到對于那些沒有定義主鍵的表,操作方法是一樣的。
          ????? 呵呵,個人的一點體會,歡迎大家多提意見。

          posted on 2006-06-01 16:21 jie_java 閱讀(10985) 評論(15)  編輯  收藏

          評論:
          # re: hibernate對視圖的操作 2006-08-07 13:13 | xx_hm
          我從數據庫中查出一個LIST
          List list =(List)db.find("from VPatent");
          我想把這個list 的第一個元素附給一個對象,然后我想將這個對象里的屬性取出,象a.getNo();a.getSex();請問這個怎么實現,我也是出現了兩個類  回復  更多評論
            
          # re: hibernate對視圖的操作 2006-10-10 13:16 | TerryZeng
          我使用了Spring來管理事務,在實例化DAO類后,要怎么得到視圖中的數據?
          AllTablePbDAO aDAO=AllTablePbDAO.getFromApplicationContext(this.getWebApplicationContext());

          AllTablePbId id=new AllTablePbId ();
          id.setEmpId(1);假設有ID為1的記錄
          AllTablePbe aa=empInfoDAO.findById(id);
          System.out.println(aa.getId().gettableName());

          結果就是Null Point異常,還忘高手指點  回復  更多評論
            
          # re: hibernate對視圖的操作 2006-10-10 13:16 | TerryZeng
          我使用了Spring來管理事務,在實例化DAO類后,要怎么得到視圖中的數據?
          AllTablePbDAO aDAO=AllTablePbDAO.getFromApplicationContext(this.getWebApplicationContext());

          AllTablePbId id=new AllTablePbId ();
          id.setEmpId(1);假設有ID為1的記錄
          AllTablePbe aa=empInfoDAO.findById(id);
          System.out.println(aa.getId().gettableName());

          結果就是Null Point異常,還忘高手指點  回復  更多評論
            
          # re: hibernate對視圖的操作 2006-10-10 13:16 | TerryZeng
          我使用了Spring來管理事務,在實例化DAO類后,要怎么得到視圖中的數據?
          AllTablePbDAO aDAO=AllTablePbDAO.getFromApplicationContext(this.getWebApplicationContext());

          AllTablePbId id=new AllTablePbId ();
          id.setEmpId(1);假設有ID為1的記錄
          AllTablePbe aa=empInfoDAO.findById(id);
          System.out.println(aa.getId().gettableName());

          結果就是Null Point異常,還忘高手指點  回復  更多評論
            
          # re: hibernate對視圖的操作[未登錄] 2007-05-16 10:10 | liu
          我出現的問題和你說的一樣哦!我用的eclipse3.2+myeclipse3.2,hibernate映射一個表(aa)的時候出現了兩個類 Aa.java和AaId.java,現在我想查詢這個表的信息,得到個集合"from Aa",可是我想取某個具體的信息是就報錯java.lang.NullPointerException,比如我想取(Aa a=new Aa();) --a.getName(),它為什么報錯了,我用a.getId().getName()也報同樣的錯,希望你能幫我看一下是什么問題,希望知道這個錯誤的高手給我解答一下,謝謝..  回復  更多評論
            
          # re: hibernate對視圖的操作 2007-09-17 17:41 | vistarw
          myE給hibernate生成的視圖是用的復合主鍵,那個XXId類中不能有空值,如果有空就返回的是null了!

          可以配置臨時表來解決!  回復  更多評論
            
          # re: hibernate對視圖的操作 2007-11-28 13:08 | hello
          @vistarw
          臨時表來? 能解釋一下嗎  回復  更多評論
            
          # re: hibernate對視圖的操作 2008-01-11 15:07 | 可克
          哥們,幫幫我吧。我的也是返回空值呀?苦惱!!!samxx8@163.com  回復  更多評論
            
          # re: hibernate對視圖的操作 2008-01-21 23:50 | shenwf
          可以配置臨時表來解決,臨時表怎么弄?  回復  更多評論
            
          # re: hibernate對視圖的操作 2008-05-23 15:46 | Atomic
          誰用視圖啊...那還要Hibernate干什么用~不支持用這種東西  回復  更多評論
            
          # re: hibernate對視圖的操作 2008-12-02 17:43 | sss
          @可克
          你的記錄里有NULL,所以會為空!
          建議你去掉表中的NULL試試!
            回復  更多評論
            
          # re: hibernate對視圖的操作[未登錄] 2011-09-06 15:55 | hehe
          有用,謝了  回復  更多評論
            
          # re: hibernate對視圖的操作 2011-12-20 13:54 | 走過的陌生人
          您好! 我的視圖中 字段中就是存在著null的情況。(數據就是這樣的,沒有辦法去掉null的情況)
          這種情況下怎么處理呢?
          還望高手指點  回復  更多評論
            
          # re: hibernate對視圖的操作 2012-03-02 12:15 | slong
          @走過的陌生人
          isnull(字段值,0)字段值為 null 則返回0;  回復  更多評論
            
          # re: hibernate對視圖的操作 2014-05-26 11:22 | 肖叮
          @TerryZeng
          List list=empInfoDAO.findByProperty("id.empId", empId);
          可以參考下:
          http://hi.baidu.com/terry05/item/66a2a6d2bc9571e7b2f77761  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 习水县| 色达县| 尼玛县| 大邑县| 报价| 留坝县| 左权县| 克东县| 昌乐县| 蓝田县| 兴业县| 托克托县| 宁津县| 丰顺县| 菏泽市| 怀柔区| 若尔盖县| 汕尾市| 临西县| 沂源县| 平安县| 徐州市| 芮城县| 巴塘县| 叶城县| 西和县| 道真| 靖宇县| 肇州县| 驻马店市| 丰台区| 侯马市| 杭州市| 涞源县| 繁峙县| 南宁市| 休宁县| 阳曲县| 威信县| 原阳县| 大兴区|