MongoTemplate通过id查询为null
使用spring-data-mongodb通过id查询返回为null的情况配置:spring.data.mongodb.uri=mongodb://test:123456@${ipAddr}:27017/mrqc?connectTimeoutMS=10000&authSource=admin版本:<dependency><groupId>org.springfram
·
使用spring-data-mongodb通过id查询返回为null的情况
配置:
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");
更多推荐
已为社区贡献2条内容
所有评论(0)