Morphia存储空值

时间:2014-12-03 10:21:00

标签: mongodb jsf mongodb-java morphia

我使用Morphia + MongoDB作为简单CRUD输入掩码的后端。

我以最简单的方式准备框架,创建一个新的MongoClient并像这样初始化Morphia:

Morphia morphia = new Morphia();
morphia.mapPackage("it.trew.omg.model");

两个实例都注入DAO:

public class ClientiDao extends BasicDAO<Cliente, String>

我的实体仍然非常简单:

@Entity("clienti")
public class Cliente {

    @Id ObjectId id;

    String name;
    String address;
    String city;
    String state;
    String email;

    public Cliente() {

    }

// getters+setters

}

假设我只是填写表单中的名称来创建一个Cliente。

当控制器调用save方法时,操作成功:

getClientiDao().save(cliente);

但是当我从mongo控制台查询'clienti'集合时,我得到了这个:

{ "_id" : ObjectId("547edf630364677dd2f911b8"), "className" : "it.trew.omg.model.Cliente", "name" : "Fabio Bozzo", "indirizzo" : "", "citta" : "", "cap" : "", "provincia" : "", "stato" : "", "email" : "", "telefono" : "", "fax" : "", "note" : "" }

我认为不会插入空字段。有什么不对吗?

版本是:

<dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.12.4</version>
        </dependency>

        <dependency>
            <groupId>org.mongodb.morphia</groupId>
            <artifactId>morphia</artifactId>
            <version>0.108</version>
        </dependency>

1 个答案:

答案 0 :(得分:4)

空字段表示空。这些领域有&#34;&#34;值等等都是持久的。如果你不想让它们持久存在,那么它们就必须是空的。