2016-04-11 6 views
0

Ich verwende db4o in einem Java-Projekt. Ich möchte einen Prototyp erstellen, um alle Personen, die nicht verheiratet sind, mithilfe von querybyexample zu erhalten. Die Person-Klasse hat drei Attribute: Name (String), Alter (int) und verheiratet (boolean), so dass ich erstellen Sie den folgenden Prototyp:db4o Prototyp für querybyexample Abfrage

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

Statt nicht verheirateten Personen bekommen, ich erhalten alle Personen gespeichert in die DB, beide verheiratet und unverheiratet. Könnte ich unverheiratete Personen mit querybyexample oder native Abfragen verwenden?

Antwort

0

Bei der Abfrage nach Beispiel werden nur Felder überprüft, die nicht den Standardwert als Abfrageparameter haben. Für Boolean ist 'false' der Standardwert, also wird in Ihrem Beispiel übersprungen.

Sie könnten eine Enum verwenden. Ändern Sie das Feld in diese Aufzählung. Wie:

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 
} 

Dies macht den Code deutlicher, was es bedeutet, und dehnbare (wie das Hinzufügen verwitwet als Status) und es sollte mit Abfrage durch Beispiel arbeiten. Die Abfrage wäre:

Person prototypePerson = neue Person (null, 0, MaritalStatus.SINGLE);