Spring data 自定义Repository 实现Mongodb的Group by
来源:互联网 发布:淘宝买家差评怎么删除 编辑:程序博客网 时间:2024/06/05 01:19
第一、首先定义一个接口,注意以下几点:
1、接口名称默认必须以:Custom结尾;
2、接口权限设置为包内访问
import java.util.List;import com.xhh.ssi.mongodb.model.SrUserExtGroup;interface BaseRepositoryCustom {List<SrUserExtGroup> myCustomMethod();}
第二、定义接口BaseRepositoryCustom实现类,注意名称以Impl结尾,也可以通过配置其他的方式结尾repository-impl-postfix:
import java.util.List;import javax.annotation.Resource;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.aggregation.Aggregation;import org.springframework.data.mongodb.core.aggregation.AggregationResults;import org.springframework.data.mongodb.core.aggregation.GroupOperation;import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;import com.xhh.ssi.mongodb.model.SrUserExtGroup;class BaseRepositoryImpl implements BaseRepositoryCustom {@Resourceprivate MongoTemplate mongoTemplate;@Overridepublic List<SrUserExtGroup> myCustomMethod() {GroupOperation groupOperation = Aggregation.group("uid").count().as("count");ProjectionOperation project = Aggregation.project("count").and("_id").as("uid");Aggregation agg = Aggregation.newAggregation(groupOperation, project);AggregationResults<SrUserExtGroup> results = mongoTemplate.aggregate(agg, "sr_user_ext", SrUserExtGroup.class);List<SrUserExtGroup> mappedResult = results.getMappedResults();return mappedResult;}}
第三、定义Repository接口
import java.io.Serializable;import org.springframework.data.repository.CrudRepository;import com.xhh.ssi.mongodb.model.SrUserExtGroup;public interface BaseRepository extendsCrudRepository<SrUserExtGroup, Serializable>, BaseRepositoryCustom {}
备注:SrUserExtGroup定义:
public class SrUserExtGroup {private intuid;private intcount;public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}}
最后测试方法:
@Testpublic void sortTest() {List<SrUserExtGroup> extGroups = baseRepository.myCustomMethod();if (extGroups != null) {for (SrUserExtGroup group : extGroups) {System.out.println("-->>UID:" + group.getUid() + ",COUNT:"+ group.getCount());}}}
注意增加XML配置:<mongo:repositories base-package="包路径.*.repositories" />
阅读全文
0 0
- Spring data 自定义Repository 实现Mongodb的Group by
- spring data mongodb学习以及为repository提供可扩展的自定义方法
- spring data mongodb学习以及为repository提供可扩展的自定义方法
- Spring技术内幕之Spring Data JPA-自定义Repository实现
- [SpringBoot实践]spring-data-mongo自定义Repository接口及其实现
- Spring-Data-Redis-Repository中以自定义class作为id的实现
- Spring-data-mongodb中@Document的重要性(解决Mongodb与redis共存时无法注入Repository)
- Python操作mongodb的group by操作(pymongo实现)
- Spring data 接口之 自定义Repository 接口
- Spring Data中手动实现Repository方法
- Spring Data MongoDB 使用group和unwind实现对数组数据进行简单统计
- Spring-data-mongodb Converter实现
- 测试Spring Data JPA的repository
- MongoDB中的Group By
- 利用AOP为Spring Data Jpa的接口Repository添加全局自定义过滤
- spring data custom behaviour 为Repository自定义行为 抛出异常。
- Spring Data JPA: 为所有Repository添加自定义方法
- Spring Data JPA: 为单个Repository添加自定义方法
- 【机器学习】卷积神经网络(CNN)模型结构
- 《Java编程技巧1001条》361条:小心指定2000年后的日期,
- Android的IPC机制(二)——AIDL实现原理简析
- ssh的整合的三大概念
- idea自定义注释模板方法名、参数、返回类型为空的问题,看到最后就明白了。
- Spring data 自定义Repository 实现Mongodb的Group by
- 图片Base64编码
- oracle储存过程 真-详解
- 判断实在pc,android,ios,微信,微博,qq打开链接
- React 动态增加,删除,上下移动dom <li><td>
- svn中 更新,提交,与资源库同步分别会有什么区别
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
- java的向上转型与向下转型
- 学生信息管理系统5——数据库代码