我使用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>
答案 0 :(得分:4)
空字段表示空。这些领域有&#34;&#34;值等等都是持久的。如果你不想让它们持久存在,那么它们就必须是空的。