一、 描述
springboot 2.x以后,根据id查询一条数据,就不能再使用findone方法了,变成了findbyid:本人总结了几种方法如下:
1.使用respository仓库类:
/**
* 通过id的查询
* @param id
* @return
*/
//根据id查询一条数据(2.0后不能使用findOne了),https://blog.youkuaiyun.com/u012211603/article/details/79828277
public OrderDetailEntity findStudentById(String id) {
Long ids=Long.parseLong(id);
//1.第1种
Optional<OrderDetailEntity> fooOptional= ordersSearchRepository.findById(ids);
OrderDetailEntity foo=null;
if (fooOptional.isPresent()){
foo = fooOptional.get();
}
else{
System.out.println("数据为empty");
}
return foo;
//2.第2种
//OrderDetailEntity fooOptional2= ordersSearchRepository.findById(ids).get();
//return fooOptional2;
//3.第3种
// return ordersSearchRepository.findOrderDetailEntityById(ids);
}
2.使用elasticsearchTemplate:OrderDetailEntity为实体类
/**
* 通过id查询
* @param id
* @return
*/
public OrderDetailEntity queryOrderDetailEntityById(String id){
GetQuery getQuery = new GetQuery();
getQuery.setId(id);
OrderDetailEntity indexedEntity = elasticsearchTemplate.queryForObject(getQuery,OrderDetailEntity.class);
return indexedEntity ;
}
3.注意:
当es的主键_id与数据自定义的主键id不一致时,入数据时候没有设置一致,需要以es的_id为准

Spring Boot 2.x 以后,根据 id 查询一条数据不能再用 findone 方法,需用 findbyid。总结了几种查询方法,如使用 respository 仓库类、elasticsearchTemplate 等。同时强调,当 es 的主键 _id 与数据自定义主键 id 不一致时,查询要以 es 的 _id 为准,否则会报错。
1000

被折叠的 条评论
为什么被折叠?



