MongoRepository 5.2.3.1. 扫描仓库接口 默认不需要设置,除非你的包不在当前包下,或者命令不是 repository。 @Query public interface PersonRepository extends MongoRepository<Person, String> { @Query("{ 'name'
private Long id; private String name; private Integer age; private String email; } 加上接口实现MongoRepository Long是对应的主键id import com.example.mongodb.model.User; import org.springframework.data.mongodb.repository.MongoRepository org.springframework.stereotype.Repository; import java.util.Optional; @Repository public interface UserRepository extends MongoRepository pageable); return new PageImpl<User>(page.getContent() , pageable , page.getTotalElements()); } 拓展 分页基于MongoRepository
示例 import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.Query ; public interface MyRepository extends MongoRepository<MyDocument, String> { @Query("{ 'fieldName 总结 MongoRepository 默认的删除方法是根据 _id 字段进行删除的,根据除 _id 以外的字段进行删除,可以使用自定义的查询方法来实现。
三、Spring Boot中使用MongoDB存储JSON数据 在Spring Boot中使用MongoDB存储JSON数据,需要配置MongoDB的连接信息,并使用MongoTemplate或MongoRepository String id; private String name; private int age; // 其他属性和方法... } 然后,你可以使用MongoTemplate或MongoRepository 如果你更倾向于使用MongoRepository,可以创建一个继承自MongoRepository的接口,并定义相关的查询方法。 ... } 在上述示例中,我们创建了一个名为UserRepository的接口,它继承自MongoRepository,并指定User类作为实体类,String作为ID类型。 通过继承MongoRepository,你将获得一些默认的CRUD操作方法,以及一些简单的自定义查询方法。
Integer _id; private String name; private String mobile; private Date birthday; } 定义一个UserRepository继承MongoRepository /** * 用户的dao层的接口,实现MongoRepository * 第一个泛型指定的是实体类,第二个指定的是主键Id的类型 */ public interface UserRepository extends MongoRepository<User, Integer>{ } 在service使用如下: @Service @Transactional //开启事务 public class import org.springframework.data.domain.Pageable; import org.springframework.data.mongodb.repository.MongoRepository import com.techwells.study.domain.DynamicComment; public interface DynamicCommentRepository extends MongoRepository
public class User { @Id private String id; private String name; private Integer age; } MongoRepository 简单增删改查 创建一个 UserDao 接口: @Repository public interface UserDao extends MongoRepository<User, String> { } 接口继承自MongoRepository,泛型分别为实体对象和主键类型。 测试查询用户: 多条件查询: Spring Data 提供了对 mongodb 数据访问的支持,我们只需要继承 MongoRepository 类,按照 Spring Data 规范就可以了 SpringData @Repository public interface UserDao extends MongoRepository<User, String> { /** * 根据年龄段来查找
上篇文章中,使用 MongoTemplate 时只需要使用 @Autowired 将其注入就可以使用,而使用 MongoRepository 需要自己定义一个 Repository 接口,然后继承 MongoRepository 下面,接着来介绍 MongoRepository 的用法。 在具体操作 MongoDB 时可以通过 MongoTemplate 来进行操作,也可以通过 MongoRepository 来进行操作。 四、定义实现 MongoRepository 接口的类 该步骤是使用 MongoTemplate 没有的一个步骤,我们需要定义一个 Repository 接口来继承 MongoRepository 那就是 Spring Data Jpa 的继承关系图与之类似,将 MongoRepository 改为 JpaRepository 来观察继承关系图,如下所示。
我们可以通过继承MongoRepository接口来轻松实现常见的数据操作。 import org.springframework.data.mongodb.repository.MongoRepository; public interface UserRepository } 在上述示例中,UserRepository继承了MongoRepository,并指定了实体类类型和主键类型。 public interface UserRepository extends MongoRepository<User, String> { // 根据用户名和邮箱查询用户 public interface UserRepository extends MongoRepository<User, String> { // 分页查询所有用户 Page
我们可以通过继承MongoRepository接口来轻松实现常见的数据操作。 import org.springframework.data.mongodb.repository.MongoRepository; public interface UserRepository } 在上述示例中,UserRepository继承了MongoRepository,并指定了实体类类型和主键类型。 public interface UserRepository extends MongoRepository<User, String> { // 根据用户名和邮箱查询用户 public interface UserRepository extends MongoRepository<User, String> { // 分页查询所有用户 Page
MongoRepository spring-boot-starter-data-mongodb确实采用了跟spring-boot-starter-data-jpa同样的方式来完成接口代理类的生成,并且提供了一些常用的单个对象操作的公共方法 ,MongoRepository接口作用与JPARepository一致,继承了该接口的业务数据接口就可以提供一个被Spring IOC托管的代理实现类,这样我们在注入业务数据接口时就会完成代理实现类的注入 废话不多说了,下面我们直接来创建一个名为CustomerRepository的数据接口,该接口继承MongoRepository<T,PK>,如下所示: /** * 客户数据接口 * 继承自MongoRepository /u/092df3f77bca * ================================ */ public interface CustomerRepository extends MongoRepository <Customer, String> { } MongoRepository <T,PK>同样也是采用了两个泛型参数, T:实体类类型。
创建MongoDB的Repository接口 继承`MongoRepository`以实现CRUD操作: import org.springframework.data.mongodb.repository.MongoRepository ; public interface UserRepository extends MongoRepository<User, String> { User findByUsername(String 使用MongoDB在服务中 在服务类中注入MongoRepository,并进行相关操作: import org.springframework.beans.factory.annotation.Autowired
MongoRepository MongoRepository和普通的Repository一样,继承PagingAndSortingRepository,支持分页和普通的CRUD。 那在mongo里是不能这么用的,要完成上面的查询,只依靠MongoRepository就不够用了,所以Spring同样也封装了MongoTemplate类,来完成mongo的操作,可定制性更高。
常用注解 @Document:标示映射到Mongodb文档上的领域对象 @Id:标示某个域为ID域 @Indexed:标示某个字段为Mongodb的索引字段 Sping Data方式的数据操作 继承MongoRepository Repository * Created by macro on 2018/8/3. */ public interface MemberReadHistoryRepository extends MongoRepository private Date createTime; //省略了所有getter和setter方法 } 添加MemberReadHistoryRepository接口用于操作Mongodb 继承MongoRepository com.macro.mall.tiny.nosql.mongodb.document.MemberReadHistory; import org.springframework.data.mongodb.repository.MongoRepository Repository * Created by macro on 2018/8/3. */ public interface MemberReadHistoryRepository extends MongoRepository
我们可以通过继承MongoRepository接口来轻松实现常见的数据操作。 import org.springframework.data.mongodb.repository.MongoRepository; public interface UserRepository } 在上述示例中,UserRepository继承了MongoRepository,并指定了实体类类型和主键类型。 public interface UserRepository extends MongoRepository<User, String> { // 根据用户名和邮箱查询用户 public interface UserRepository extends MongoRepository<User, String> { // 分页查询所有用户 Page
date='%s', content='%s', title='%s']", id, date, content, title); } } 增加ReportRepository接口,它继承自MongoRepository 接口,MongoRepository接口包含了常用的CRUD操作,例如:save、insert、findall等等。 我们可以定义自己的查找接口,例如根据report的title搜索,具体的ReportRepository接口代码如下: import org.springframework.data.mongodb.repository.MongoRepository java.util.List; /** * Created by duqi on 15/11/22. */ public interface ReportRepository extends MongoRepository
Spring Boot 操作 MongoDB 有两种比较流行的使用方法,一种是将 MongoTemplate 直接注入到 Dao 中使用,一种是继承 MongoRepository, MongoRepository 5.2 MongoRepository 熟悉Spring Data的同学应该对Repository比较熟悉。 下面就来演示下MongoRepository的用法。 首先创建一个UserRepository接口,继承 MongoRepository,这样就可直接使用 MongoRepository 的全部内置方法。 最后,运行单元测试类MongoRepositoryTest,验证使用MongoRepository操作MongoDB增删改查功能是否成功。
application.properties文件中加入 spring.data.mongodb.uri=mongodb://localhost:27017/springboot-db springboot就能支持MongoRepository import org.jeecg.modules.mongodb.entity.Customer; import org.springframework.data.mongodb.repository.MongoRepository ; import java.util.List; public interface CustomerRepository extends MongoRepository<Customer, String 测试用例 用两种方式测试mongoDB,分别为MongoRepository和MongoTemplate package org.jeecg.modules.mongodb; import org.jeecg.common.api.vo.Result
package springmvc.orders.db; import java.util.List; import org.springframework.data.mongodb.repository.MongoRepository ; import springmvc.bean.Order; public interface OrderRepository extends MongoRepository<Order, String ; } 看到这里,大家有没有发现package的地址就是我们刚才@EnableMongoRepositories(basePackages = “springmvc.orders.db”)的配置 MongoRepository 第二个参数是带有@Id注解的属性类型 OrderRepository继承了MongoRepository中很多自带的方法 方法 描述 long count() 返回指定Repository类型的文档数量 package springmvc.orders.db; import java.util.List; import org.springframework.data.mongodb.repository.MongoRepository
4)MongoRepository 实体类上使用标注@Document,属性字段上可使用@Id(org.bson.types.ObjectId),@Indexed,@Field 等。 定义的@Repository接口继承MongoRepository<T, R>,同Spring Data JPA一样:方法名上加@Query定义查询、也可通过约定的metho name自动生成查询。 实体类如使用MongoRepository一样,通过@Document、@org.bson.types.ObjectId标识自己。
IEnumerable<int>> PermissionUrls = new Dictionary<string, IEnumerable<int>>();
7 private static MongoRepository _mongoRepository;
8
9 ///