2012-05-13 12 views
0

プログラムからデータを取得しようとしているときに問題が発生しました。私はデータベースとしてobjectDBを使用しています。また、私のデータベースはすでに設定されており、私はobjectDBインストールのdbフォルダにlaptop.odbファイルを落としました。また、ときに私は探検家に行って、クエリを発射:プログラムからobjectdbデータベースから値を取得しています

select this.modelName == "HP Pavillion"

正しい結果がアップします。しかし、私は何も結果が返されません、次の

public static void main(String argv[]) {
PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb"); System.out.println("-- TEST --\n");
Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\""); Collection result = (Collection)query.execute(); System.out.println("Result is >> "+result);
ここ

のように私のコードと同じことをしようとします。私の出力は次のようになります。
- TESTの検索 -

結果が>> []クラスの

私のコードは次の通りです。

package com.project; 

    import java.util.*; 

    import javax.annotation.processing.Processor; 
    import javax.jdo.*; 

    import com.objectdb.Utilities; 

    public class Laptop { 

     String modelName; // key 

public static void main(String argv[]) { 
     PersistenceManager pm = Utilities.getPersistenceManager("laptop.odb"); 
     System.out.println("-- TEST find --\n"); 
     Query query = pm.newQuery(Laptop.class,"this.modelName == \"HP Pavillion\""); 
     Collection result = (Collection)query.execute(); 
     System.out.println("Result is >> "+result); 

} 

答えて

1

「laptop.odb」は、既存のObjectDBデータベースを参照している可能性があります。その場合、新しいデータベースが自動的に作成されます。新しいデータベースが空に作成されるため、クエリから結果が返されません。

既存のデータベースへの絶対パスを指定してください。

+0

laptop.odbファイルをそこに置くことができるようにデータベースを作成するデフォルトの場所は何ですか?したがって、プログラムは再度作成しません。 ありがとう –

+0

デフォルトの場所は現在のディレクトリ(オペレーティングシステムの概念)ですが、 "$ objectdb/laptop.odb"を使用した場合、場所はhttp://www.objectdb.comで定義されているObjectDBホームディレクトリです/ java/jpa/setting – ObjectDB

+0

ありがとうございます。 http://stackoverflow.com/questions/10637513/query-in-objectdb#comment13789895_10637513に投稿された別の質問にお答えください。前もって感謝します。 –

関連する問題