Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java POJO作为mongodb中的文件_Java_Entities_Annotated Pojos - Fatal编程技术网

Java POJO作为mongodb中的文件

Java POJO作为mongodb中的文件,java,entities,annotated-pojos,Java,Entities,Annotated Pojos,我正在尝试将实体保存为Mongodb中的文档,并尝试为其创建编解码器。而且它似乎不起作用。我尝试了Morphia,但找不到关于在运行时使用Morphia向文档中添加额外字段的文档。这将违背最初使用Mongodb的基本目的。 我最初希望我的文档在POJO中有固定数量的字段。在应用程序运行期间,字段的数量应该改变 有人能给我建议我该怎么做吗?我不知道这是否是一个好的解决方案,但以下是我所做的。 如果您没有为Mongodb使用Morphia。您希望将POJO实体序列化。您可以像下面显示的代码那样执行此

我正在尝试将实体保存为Mongodb中的文档,并尝试为其创建编解码器。而且它似乎不起作用。我尝试了Morphia,但找不到关于在运行时使用Morphia向文档中添加额外字段的文档。这将违背最初使用Mongodb的基本目的。 我最初希望我的文档在POJO中有固定数量的字段。在应用程序运行期间,字段的数量应该改变


有人能给我建议我该怎么做吗?我不知道这是否是一个好的解决方案,但以下是我所做的。 如果您没有为Mongodb使用Morphia。您希望将POJO实体序列化。您可以像下面显示的代码那样执行此操作。但是,如果您想要组织数据,就必须维护setters调用序列 下面是两个类,它们给出了一些提示

package com.mongodbtest.entities;

 import java.io.Serializable;

 import org.bson.Document;

 import org.bson.BsonDocument;
 import org.bson.BsonInt32;
  import org.bson.BsonNumber;
 import org.bson.BsonString;

public class User extends BsonDocument {

/**
     * 
     */
private static final long serialVersionUID = -9167404209850672507L;
// private String _id;
private BsonString name;
private BsonString email;
private BsonString address;
private BsonInt32 phno;

public User(String name, String email, StringBuilder address, Number phno) {
    super();
    this.name = new BsonString(name);
    this.email = new BsonString(email);
    this.address = new BsonString(address.toString());
    this.phno = new BsonInt32(phno.intValue());
}

public User() {
}

public BsonString getName() {
    return this.name;
}

public void setName(String name) {
    this.name = new BsonString(name);
    this.append("name", this.name);

}

public BsonString getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = new BsonString(email);
    this.append("email", this.email);
}

public BsonString getAddress() {
    return address;
}

public void setAddress(StringBuilder address) {
    this.address = new BsonString(address.toString());
    this.append("address", this.address);
}

public BsonInt32 getPhno() {
    return phno;
}

public void setPhno(Number phno) {
    this.phno = new BsonInt32(phno.intValue());
    this.append("phno", this.phno);
}

}
序列化它的类将如下所示

package com.mongodb.sample;

import org.bson.BsonDocument;
import org.bson.Document;

import com.mogodbsample.config.DBconfig;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodbtest.entities.User;

public class Firstmongoaccess {

public static void main(String... args) {
    MongoDatabase dataase = DBconfig.getdatabase();
    MongoCollection<User> collection = dataase.getCollection("users",  User.class);

    User u1 = new User();
    u1.setAddress(new StringBuilder("something street bangalore 356322"));
    u1.setName("xxxxxx");
    u1.setEmail("gh@gmail.com");
    u1.setPhno(3263433);

    collection.insertOne(u1);
    MongoCursor<? extends BsonDocument> cursor = collection.find().iterator();
    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next().toJson());
        }
    } finally {
        cursor.close();
    }

}
}
package com.mongodb.sample;
导入org.bson.BsonDocument;
导入org.bson.Document;
导入com.mogodbsample.config.DBconfig;
导入com.mongodb.client.MongoCollection;
导入com.mongodb.client.MongoCursor;
导入com.mongodb.client.MongoDatabase;
导入com.mongodbtest.entities.User;
公共类Firstmongoaccess{
公共静态void main(字符串…参数){
MongoDatabase Database=DBconfig.getdatabase();
MongoCollection collection=dataase.getCollection(“用户”,User.class);
用户u1=新用户();
u1.设置地址(新StringBuilder(“班加罗尔某物街356322”);
u1.设置名称(“xxxxxx”);
u1.setEmail(“gh@gmail.com");
u1.setPhno(3263433);
收藏:insertOne(u1);

MongoCursor我不知道这是否是一个好的解决方案,但以下是我所做的。 如果您不在Mongodb中使用Morphia,并且希望对POJO实体进行序列化,则可以像下面的代码所示那样执行此操作。但是,如果您希望对数据进行组织,则必须维护setters调用序列 下面是两个类,它们给出了一些提示

package com.mongodbtest.entities;

 import java.io.Serializable;

 import org.bson.Document;

 import org.bson.BsonDocument;
 import org.bson.BsonInt32;
  import org.bson.BsonNumber;
 import org.bson.BsonString;

public class User extends BsonDocument {

/**
     * 
     */
private static final long serialVersionUID = -9167404209850672507L;
// private String _id;
private BsonString name;
private BsonString email;
private BsonString address;
private BsonInt32 phno;

public User(String name, String email, StringBuilder address, Number phno) {
    super();
    this.name = new BsonString(name);
    this.email = new BsonString(email);
    this.address = new BsonString(address.toString());
    this.phno = new BsonInt32(phno.intValue());
}

public User() {
}

public BsonString getName() {
    return this.name;
}

public void setName(String name) {
    this.name = new BsonString(name);
    this.append("name", this.name);

}

public BsonString getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = new BsonString(email);
    this.append("email", this.email);
}

public BsonString getAddress() {
    return address;
}

public void setAddress(StringBuilder address) {
    this.address = new BsonString(address.toString());
    this.append("address", this.address);
}

public BsonInt32 getPhno() {
    return phno;
}

public void setPhno(Number phno) {
    this.phno = new BsonInt32(phno.intValue());
    this.append("phno", this.phno);
}

}
序列化它的类将如下所示

package com.mongodb.sample;

import org.bson.BsonDocument;
import org.bson.Document;

import com.mogodbsample.config.DBconfig;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodbtest.entities.User;

public class Firstmongoaccess {

public static void main(String... args) {
    MongoDatabase dataase = DBconfig.getdatabase();
    MongoCollection<User> collection = dataase.getCollection("users",  User.class);

    User u1 = new User();
    u1.setAddress(new StringBuilder("something street bangalore 356322"));
    u1.setName("xxxxxx");
    u1.setEmail("gh@gmail.com");
    u1.setPhno(3263433);

    collection.insertOne(u1);
    MongoCursor<? extends BsonDocument> cursor = collection.find().iterator();
    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next().toJson());
        }
    } finally {
        cursor.close();
    }

}
}
package com.mongodb.sample;
导入org.bson.BsonDocument;
导入org.bson.Document;
导入com.mogodbsample.config.DBconfig;
导入com.mongodb.client.MongoCollection;
导入com.mongodb.client.MongoCursor;
导入com.mongodb.client.MongoDatabase;
导入com.mongodbtest.entities.User;
公共类Firstmongoaccess{
公共静态void main(字符串…参数){
MongoDatabase Database=DBconfig.getdatabase();
MongoCollection collection=dataase.getCollection(“用户”,User.class);
用户u1=新用户();
u1.设置地址(新StringBuilder(“班加罗尔某物街356322”);
u1.设置名称(“xxxxxx”);
u1.setEmail(“gh@gmail.com");
u1.setPhno(3263433);
收藏:insertOne(u1);
MongoCursor