【问题标题】:db4o prototype for querybyexample queryquerybyexample 查询的 db4o 原型
【发布时间】:2016-04-11 21:15:39
【问题描述】:

我在 Java 项目中使用 db4o。我想创建一个原型来使用 querybyexample 获取所有未婚的人。 Person类具有三个属性:name(String)、age(int)和married(boolean),所以我创建了如下原型:

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

我没有得到未婚的人,而是得到了存储在数据库中的所有人,包括已婚和未婚的人。我是否可以使用 querybyexample 获取未婚人士,或者我应该使用原生查询?

【问题讨论】:

    标签: prototype db4o


    【解决方案1】:

    通过示例查询基本上只检查没有默认值作为查询参数的字段。对于布尔值,'false' 是默认值,因此在您的示例中它将被跳过。

    您可以考虑使用枚举。将字段更改为该枚举。喜欢:

    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
    }
    

    这使您的代码更明确,更可扩展(例如添加 Widowed 作为状态)并且它应该通过示例与查询一起使用。查询将是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多