2016-04-11 6 views
0

私はJavaプロジェクトでdb4oを使用しています。私はquerybyexampleを使用して結婚していないすべての人を取得するためのプロトタイプを作成したいと思います。 Personクラスには3つの属性があります。名前(文字列)、年齢(int型)と結婚(boolean)を、私は、次のプロトタイプを作成:結婚していない人物を取得する代わりに、すべての人が中に保存され、私が手querybyexampleクエリのdb4oプロトタイプ

Person prototypePerson = new Person(null, 0, false); 

を結婚と未婚の両方のDB。 querybyexampleを使用して未婚の人を取得できますか、ネイティブクエリを使用する必要がありますか?

答えて

0

例によるクエリは、クエリパラメータとしてデフォルト値を持たないフィールドのみをチェックします。ブール値の場合、デフォルト値は「false」なので、例ではスキップされます。

enumの使用を検討することができます。フィールドをその列挙型に変更します。同様に:

enum MaritalStatus{ 
    MARRIED, 
    SINGLE 
} 

class Person{ 

    private String name; 
    private MaritalStatus status; 

    public Person(String name, MaritalStatus status){ 
     this.status = status; 
     this.name = name; 
    } 

    // more 
} 

これは(ステータスとして死別追加など)あなたのコードは、それが何を意味するのか、より明確な、そしてより拡張性になり、それは一例で、クエリで動作するはずです。クエリは次のようになります。

Person prototypePerson = new Person(null、0、MaritalStatus.SINGLE);