隨筆-35  評論-97  文章-0  trackbacks-0

          EMF-Query的官方例子library中,我要下面測試代碼去跑

              public static void main(String[] args)
              
          {
                  EXTLibraryFactory factory 
          = EXTLibraryFactory.eINSTANCE;
                  Set
          <EObject> subjects = new HashSet<EObject>();  // hypothetical source of test subjects
                  Library library = factory.createLibrary();
                  library.setName(
          "abc library");
                  Writer dickens 
          = factory.createWriter();
                  dickens.setName(
          "abc author");
                  
                  library.getWriters().add(dickens);
                  
                  Book b1 
          = factory.createBook();
                  b1.setTitle(
          "a book");
                  b1.setAuthor(dickens);
                  subjects.add(b1);
                  library.getBooks().add(b1);
                  
          /*
                   * Looking for books whose writer name is the specified name
                   
          */

                  EObjectCondition condition 
          = new EObjectReferenceValueCondition(
                      
          new EObjectTypeRelationCondition(EXTLibraryPackage.eINSTANCE.getBook()),
                      EXTLibraryPackage.eINSTANCE.getBook_Author(),
                      
          new EObjectAttributeValueCondition(EXTLibraryPackage.eINSTANCE
                          .getWriter_Name(), 
          new StringValue(dickens.getName())));

                  
          // Build the select query statement
                  SELECT statement = new SELECT(
                      
          new FROM(library), 
                      
          new WHERE(condition));

                  
          // Execute query
                   IQueryResult r1 = statement.execute();
                   
          for(Object object : r1)
                  
          {
                      System.out.println(object);
                  }

              }

          可以得到下面的結果:

          org.eclipse.emf.examples.extlibrary.impl.BookImpl@c791b9 (publicationDate: null) (copies: 0) (title: a book, pages: 100, category: <unset>)

           

          但是我自己將它的模型簡化后,模型為extlibrary.zip,重新生成模型代碼。再用上面的代碼測試的時候,卻什么結果也沒有。

          不是我故意要簡化這模型來挑這個毛病,其實在其他模型中出現了相似的問題:發覺emf-query查詢條件語句沒有什么錯,但是卻沒有結果。所以想在官方的例子試試。奇怪就是,同樣的測試語句,官方例子中的模型可查得數據,我簡化后(自己建的模型)卻得不到結果。是建模的方法不對?還是要注意一些什么問題?我是在ecore上(如上圖)直接添加EAttribute等方式建立模型的。

          那位大俠幫忙看一下咯,感激~~~~~~~~~~

           

          posted on 2007-06-12 17:26 三告習習 閱讀(508) 評論(1)  編輯  收藏 所屬分類: emf/gef/gmf

          評論:
          # re: [EMF-Query] 奇怪的模型查詢問題,誰知道是什么原因嗎? 2007-06-13 09:14 | 三告習習
          找到原因了,如果要從library里查詢books,Library對Book的的關聯屬性containment要設定為true。
          還有什么因素影響嗎?再找找看  回復  更多評論
            
          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(10)

          我參與的團隊

          隨筆分類

          隨筆檔案

          blogs

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 油尖旺区| 东辽县| 德安县| 昌平区| 峨边| 武邑县| 旺苍县| 太康县| 靖宇县| 饶平县| 仁布县| 无极县| 勃利县| 定远县| 浦江县| 桐城市| 淳安县| 虎林市| 四子王旗| 涟源市| 中方县| 吉水县| 新乡市| 青阳县| 壶关县| 谢通门县| 新津县| 延寿县| 琼结县| 宜黄县| 临夏市| 菏泽市| 玛纳斯县| 丹江口市| 河东区| 朝阳市| 海晏县| 崇礼县| 尚志市| 扬中市| 天长市|