关于MongoTemplate通过id查询为null的问题
2021-02-01 04:07
2251 查看
Mongo的优势
1. 它会把数据文件映射到内存中,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。MongoDB并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟内存管理器去处理,这样做的好处是简化了MongoDB的工作,但坏处是你没有方法很方便的控制MongoDB占多大内存,幸运的是虚拟内存管理器的存在让我们多数时候并不需要关心这个问题。
2. MongoDB的内存使用机制让它在缓存重建方面更有优势,简而言之:如果重启进程,那么缓存依然有效
配置:
spring.data.mongodb.uri=mongodb://test:123456@${ipAddr}:27017/mrqc?connectTimeoutMS=10000&authSource=admin
版本:
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>2.2.0.RELEASE</version> </dependency>
错误实体类
MongoId设置为了String,需要设置为ObjectId类型
@Data @Document("user") public class User { @MongoId private String id; @Field("userName") private String userName; }
正确实体类
@Data @Document("user") public class User { @MongoId private ObjectId id; @Field("userName") private String userName; }
查询语句,如果mongoId类型为String那么就查询不出来,无论是直接使用
findById方法或者find(query)或者id传ObjectId对象,都是查不出来的,开始还以为配置错了,结果是因为Mongo的id都是ObjectId无法对应上实体类中的String类型。改成ObjectId同样的语句就可以查询出来了
User user = mongoTemplate.findById(new ObjectId(userId),User.class, "user");
到此这篇关于关于MongoTemplate通过id查询为null的问题的文章就介绍到这了,更多相关MongoTemplate查询为null内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:相关文章推荐
- 关于查询对象ID不被填充的问题(值为NULL)
- 通过Xpath查询xml返回null,xmlns问题
- 关于插入记录后查询自动增长ID问题
- 关于getResult方法通过for循环筛选查询条件的问题
- 关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 关于通过id查询记录的一些总结
- 关于MYSQL通过子查询删除重复数据的for update报错问题解决
- MyBatis 注解 多表查询 id为null问题
- mongo-查询(3)——关于null
- android7.0关于TelephonyManager.getDeviceId()返回null的问题
- 关于getHibernateTemplate().get(entityClass, id)的问题
- 请教一下大牛!有关于android 通过电话号码查询通讯录的问题。
- 【尚未解决】关于webdriver中浏览器从页面回退后通过id/xpath取得元素出错的问题
- node.js+mongoose通过mongodb的id来查询数据id类型不对问题的解决
- 关于ORACLE通过file_id与block_id定位数据库对象遇到的问题的一点思考
- 关于通过Uri 查询文件路径的问题
- 关于EN信号通过电阻分压的问题
- mysql查询ID排序问题,
- 关于java出现java.lang.NullPointerException问题