SpringBoot2.0 (Spring-Data-Jpa) findById(findOne())和Optional<T>的使用
时间:2022-09-01
1、findOne()方法的替代方法findById()
2.0版本,Spring-Data-Jpa修改findOne()。
1)2.0版本之前
T findOne(ID primaryKey);
2)2.0版本
Optional<T> findById(ID id);
2、Optional Optional<T>的使用
文档:Optional
container对象,可能包含也可能不包含非null
值。如果存在值,则isPresent()
将返回true
,get()
将返回该值。提供依赖于是否存在包含值的其他方法,例如orElse()
(如果值不存在则返回默认值)和ifPresent()
(如果值存在则执行代码块)。
Optional<T> findById(ID id)中Optional的一些用法:
1)如果没找到指定实体,则返回一个默认值。
Foo foo = repository.findById(id)
.orElse(new Foo());
或者
Foo foo = repository.findById(id)
.orElse(null);
2)如果找到实体返回它,否则抛出异常
return repository.findById(id)
.orElseThrow(() -> new EntityNotFoundException(id));
3)假设希望根据是否找到实体来应用不同的处理(无需抛出异常)
Optional<Foo> fooOptional = fooRepository.findById(id); if (fooOptional.isPresent()){ Foo foo = fooOptional.get(); // 处理 foo ... } else{ //另一种情况.... }
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。