隨筆-8  評(píng)論-19  文章-2  trackbacks-0

          ????? 由于視圖沒有主鍵,所以在用hibernate對(duì)視圖操作就需要做點(diǎn)處理了,網(wǎng)上搜了一通也沒能找到相關(guān)文章,后來(lái)突然想到了myeclipse可以幫助生成hibernate的配置文件和對(duì)應(yīng)的pojo代碼。
          ????? 打開myeclipse,選擇相關(guān)的視圖,生成了配置文件和pojo類,發(fā)現(xiàn)pojo類生成了兩個(gè),而配置文件卻一個(gè),參看了配置文件和類,明白了是怎么回事。生成的配置文件通過了組合的方式生成,所以會(huì)對(duì)應(yīng)兩個(gè)類,一個(gè)類主要存放id信息,以個(gè)類存放對(duì)應(yīng)的字段信息。
          ????? 下面是生成的類和配置文件:
          類:
          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()取得相關(guān)的信息。
          ????? 感覺myeclipse的確不錯(cuò),特別是對(duì)于使用hibernate還不是非常熟練的人來(lái)說(shuō),通過它可以幫解決不少問題。
          ????? 通過這樣對(duì)視圖的操作,同樣也可以用到對(duì)于那些沒有定義主鍵的表,操作方法是一樣的。
          ????? 呵呵,個(gè)人的一點(diǎn)體會(huì),歡迎大家多提意見。

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

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

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

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

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

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

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

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

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 建宁县| 宜丰县| 通江县| 达尔| 双辽市| 孟村| 富平县| 广宗县| 特克斯县| 山阴县| 陕西省| 波密县| 固始县| 诏安县| 道真| 贵州省| 松江区| 尼木县| 固始县| 屏边| 淮安市| 揭东县| 霍林郭勒市| 承德市| 沈丘县| 梧州市| 密云县| 玉环县| 上蔡县| 怀集县| 丽江市| 皋兰县| 时尚| 察哈| 博乐市| 宽城| 华蓥市| 广东省| 莱州市| 乌兰浩特市| 阿克陶县|