2016-09-21 3 views
0

私はドキュメントに接続されているJavaプロジェクトに取り組んでいます。私が使用して私のdm_aclオブジェクトテーブルからいくつかのデータを取得しようとしています次:ドキュメントからのフェッチされたデータ(dm_aclオブジェクトテーブル)がヌルになっていますか?どうして?

String fetchAclsInfoQuery = "select * from dm_acl where description = '@aclname0' or description = '@aclname1' or description = '@aclname2' enable (ROW_BASED) "; 
      fetchAclsInfoQuery = fetchAclsInfoQuery.replace("@aclname0", list.get(0)); 
      fetchAclsInfoQuery = fetchAclsInfoQuery.replace("@aclname1", newAcl1.toString().toLowerCase()); 
      fetchAclsInfoQuery = fetchAclsInfoQuery.replace("@aclname2", newAcl2.toString().toLowerCase()); 
      System.out.println(fetchAclsInfoQuery); 

//The problem starts from here ==> 
      IDfQuery aclDetailsFetching = new DfQuery(); 
      //IDfCollection col = UpdateQuery.execute(_session, IDfQuery.DF_QUERY); 
      IDfCollection details = aclDetailsFetching.execute(_session, DfQuery.DF_READ_QUERY); 
      while(details.next()){ 
       System.out.println(details.getString("owner_name")); 
      } 

私は「fetchAclsInfoQuery」の結果をプリントアウトし、DQLテスター、それは完全に正常に動作して、それを実行したら、どのようにこれまで私は、アウトをしようとすると、私が得るすべての "owner_name"列に格納されている値をnullにする。 私の間違いはどこですか? :)

答えて

2

DQL文をクエリオブジェクトに設定するのを忘れています。
は、彼らの両方がうまく動作

+0

する必要があります... – Miki

0

は、私が代わりに実際のプロパティ名のアスタリスクに問題があるかなり確信している

String fetchAclsInfoQuery = "select owner_name from dm_acl where description = '@aclname0' or description = '@aclname1' or description = '@aclname2' enable (ROW_BASED) "; 

代わりの

String fetchAclsInfoQuery = "select * from dm_acl where description = '@aclname0' or description = '@aclname1' or description = '@aclname2' enable (ROW_BASED) "; 

を書いてみてください。 メソッドhasAttr("<attribute_name>")を使用して、目的のプロパティ(属性)がコレクションにロードされているかどうかを確認できます。

+0

aclDetailsFetching.setDQL(fetchAclsInfoQuery);を追加します。私が列名を指定する必要があると思うのはなぜですか? ;) –

+0

アスタリスクでプロパティを指定していないので、VM内のコレクションにすべてを入れないことがあります。 – Miki

関連する問題