Java MongoDB正在保存ID
出于某种原因,我的Mongo DB只是创建了一个属于文档的ID,而不是其他属性 我有一个Spring@Repository:Java MongoDB正在保存ID,java,mongodb,document,nosql,Java,Mongodb,Document,Nosql,出于某种原因,我的Mongo DB只是创建了一个属于文档的ID,而不是其他属性 我有一个Spring@Repository: @Repository public class BeerRepository { public void createBeer(final BeerDTO beerDTO) { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("beers");
@Repository
public class BeerRepository {
public void createBeer(final BeerDTO beerDTO) {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("beers");
DBCollection beerCollection = db.getCollection(BeerDTO.COLLECTION_NAME);
beerCollection.insert(beerDTO);
// System.err.println(beerCollection.findOne());
}
}
还有一个简单的POJO,没有别的:
@Document
public class BeerDTO extends BasicDBObject {
private static final long serialVersionUID = 1235041607375829595L;
public static final String COLLECTION_NAME = "Beers";
@Field("id")
private String id;
@Field("name")
private String name;
@Field("abv")
private int abv; //alcohol by volume
public BeerDTO(String id, String name, int abv) {
this.id = id;
this.name = name;
this.abv = abv;
}
}
然而,这是Mongo得到的唯一东西:
非常感谢 我在回购协议中改变了createBeer的方法,它成功了:
public void createBeer(final BeerDTO beerDTO) {
MongoClient mongoClient = new MongoClient();
DB database = mongoClient.getDB("beers");
DBCollection beerCollection = database.getCollection(BeerDTO.COLLECTION_NAME);
DBObject beer = new BasicDBObject("id", beerDTO.getId())
.append("name", beerDTO.getName())
.append("abv", beerDTO.getAbv());
beerCollection.insert(beer);
}
也许这对您来说是显而易见的,但是,您在插入它之前是否设置了beerDTO的所有字段?这些字段不是空的吗?谢谢你的评论,但事实上,这是我检查的第一件事。DTO包含数据。