本文共 817 字,大约阅读时间需要 2 分钟。
1.Entity中配置
@Field("version")@Versionprivate Long version ;@Version 的包引用为
org.springframework.data.annotation.Version
类型需要为对象类Long,不能为long
2.repository中需要extends MongoRepository
MongoRepository
3.serviceImpl中配置
方法上加上@Transactional标签
@Transactional
如果是新entity,则使用insert
this.userBuyCourseRepository.insert(userBuyCourseEntity) ;如果是更新entity,则使用save,同时需要先查询出entity,再save(entity),如果是save (newEntity) ,则需要将查询出的entity的version对newEntity赋值,才能执行,否则会报违反唯一约束
UserBuyCourseEntity checkEntity =this.userBuyCourseRepository.findOne( userBuyCourseEntity.getAccountJoinTimeJoinCourse()) ;
userBuyCourseEntity.setVersion(checkEntity.getVersion());//必须设置version,因为转化过来的userBuyCourseEntity无verison值,mongo认为version为null,则为insert操作,
这样违背了update愿意if(checkEntity!=null){ this.userBuyCourseRepository.save(userBuyCourseEntity) ;}
转载地址:http://ueadi.baihongyu.com/