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

          ????? 由于視圖沒有主鍵,所以在用hibernate對(duì)視圖操作就需要做點(diǎn)處理了,網(wǎng)上搜了一通也沒能找到相關(guān)文章,后來突然想到了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還不是非常熟練的人來說,通過它可以幫解決不少問題。
          ????? 通過這樣對(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ù)庫中查出一個(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來管理事務(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來管理事務(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來管理事務(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)的問題和你說的一樣哦!我用的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í)表來解決!  回復(fù)  更多評(píng)論
            
          # re: hibernate對(duì)視圖的操作 2007-11-28 13:08 | hello
          @vistarw
          臨時(shí)表來? 能解釋一下嗎  回復(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í)表來解決,臨時(shí)表怎么弄?  回復(fù)  更多評(píng)論
            
          # re: hibernate對(duì)視圖的操作 2008-05-23 15:46 | Atomic
          誰用視圖啊...那還要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)航:
           
          主站蜘蛛池模板: 佳木斯市| 锦州市| 丰原市| 晋城| 乐亭县| 马鞍山市| 得荣县| 张家口市| 东山县| 淮北市| 潼南县| 邳州市| 黑龙江省| 林甸县| 昭通市| 高青县| 昂仁县| 灵璧县| 隆德县| 宝应县| 绵阳市| 伊宁县| 金溪县| 弥勒县| 博乐市| 遵化市| 高平市| 满城县| 岳西县| 涡阳县| 肇源县| 宁南县| 玉林市| 海晏县| 榆中县| 同德县| 平武县| 卫辉市| 白城市| 广宗县| 榆中县|