首页 > 编程语言 > 详细

Spring MongoTemplate upsert

时间:2016-04-27 02:08:03      阅读:1341      评论:0      收藏:0      [点我收藏+]

Spring MongoTemplate upsert 插入未报异常,但是数据库中没有查询到相关记录。

如下,一般为update.set()方法,没有把除了Criteria中的字段都update。

?

?

package com.oasis.model;

import com.google.gson.Gson;
import org.apache.commons.lang.StringUtils;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "guanShuTaskInfo")
@CompoundIndexes({
        @CompoundIndex(name="guanShuTaskInfo_taskId_index",def="{‘taskId‘:1}", unique=true),
        @CompoundIndex(name="guanShuTaskInfo_index",def="{pid‘:1}")
})
public class TaskBean {
    private String taskId;
    private String account;
    private String name;
    private String phoneno;
    private String idcard;
    private String password;
    private String usergid;
    private String token;
    private String pid;
    private String sort;
    private int accType;
    private int status;
    private int ecode;
    private int httpCode;
    private long createTime;
    private long updateTime;
    // set get 方法
}

?

?

?

upsert方法

?

public void saveForTask(TaskBean taskBean) {
        logger.debug("saveForTask.taskBean=" + taskBean);
        if (null == taskBean) {
            logger.debug("saveForTask taskBean is null | return for not operate");
            return;
        }

        Criteria criteria = Criteria.where("taskId").is(taskBean.getTaskId());
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("account", taskBean.getAccount());
        update.set("name", taskBean.getName());
        // 如果少了一个则会出现插入失败的情况。且不会报异常
        update.set("phoneno", taskBean.getPhoneno());
        update.set("idcard", taskBean.getIdcard());
        update.set("password", taskBean.getPassword());
        update.set("usergid", taskBean.getUsergid());
        update.set("pid", taskBean.getPid());
        update.set("accType", taskBean.getAccType());
        update.set("sort", taskBean.getSort());
        update.set("status", taskBean.getStatus());
        update.set("ecode", taskBean.getEcode());
        update.set("httpCode", taskBean.getHttpCode());
        update.set("createTime", taskBean.getCreateTime());
        update.set("updateTime", taskBean.getUpdateTime());
        logger.debug("upsert.taskBean=" + taskBean);
        mongoTemplate.insert(taskBean);
        logger.debug("upsert.taskId:{} result:{}", taskBean, result);
    }

?

?

Spring MongoTemplate upsert

原文:http://Y292450104.iteye.com/blog/2293993

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!