-
Notifications
You must be signed in to change notification settings - Fork 3
Home
airfey edited this page Nov 18, 2013
·
9 revisions
Welcome to the spring-mongodb-demo wiki!
关于主键自增的实现
/** * 根据集合名称以及级别生成自增id
- @Title: getAutoIncreaseID
- @param cname
- @param level
- @return
- @Author: airfey 2013-10-29 下午12:16:06 */
private long getAutoIncreaseID(String cname, Number level) {
BasicDBObject query = new BasicDBObject();
query.put("cname", cname);
BasicDBObject update = new BasicDBObject();
update.put("$inc", new BasicDBObject("cid", level));
DBObject dbObject2 = this.mongoTemplate.getCollection("inc_ids")
.findAndModify(query, null, null, false, update, true, true);
return (Long) dbObject2.get("cid");
}
利用$inc的原子性和多线程安全性,每次自增Number level(一般level=1),实现自增主键id的封装。