亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

findOne方法是findOne(Example<S> example) 返回Optional<S>,為什么我的findOne()方法會報錯

findOne方法是findOne(Example example) 返回Optional,為什么我的版本用不起findOne()方法

正在回答

10 回答

引入頭文件
import?java.util.Optional;
import?org.springframework.data.domain.Example;

實現代碼
//查詢一個女生
@GetMapping(value?=?"/girls/{id}")
public?Optional<Girl>?girlFindOne(@PathVariable("id")?Integer?id)
{
????Girl?girl?=?new?Girl();
????girl.setId(id);
????Example<Girl>?example?=?Example.of(girl);

????return?girlRepository.findOne(example);
}


1 回復 有任何疑惑可以回復我~
Optional<Employee>?employee1?=?employJpaRepository.findById(99);
System.out.println("第二個:"+employee1);

這樣子會比較簡單

0 回復 有任何疑惑可以回復我~

自從spring boot 2.0以后,由于用上了Java 8 的Option,廢除了findone(Id)。

1 回復 有任何疑惑可以回復我~

spring boot 新版本的問題,現在findOne返回的是 Optional 對象。

如果傳id可直接調用findById方法,若傳對象則調用findOne方法。

@Override
public?Optional<MyAction>?findMyActionById(Integer?myActionId)?{
????return?myActionRepository.findById(myActionId);
}


1 回復 有任何疑惑可以回復我~

要導入正確的包

import org.springframework.data.domain.Example;

Example

0 回復 有任何疑惑可以回復我~

import org.springframework.data.domain.Example;

@GetMapping(value = "/girls/{id}")
public Optional<Girl> girlFindOne(@PathVariable("id") Integer id)
{
? ?Girl girl = new Girl();
? ?girl.setId(id);
? ?Example<Girl> example = Example.of(girl);
? ?return girlRepository.findOne(example);
}

0 回復 有任何疑惑可以回復我~

謝謝你的帖子

0 回復 有任何疑惑可以回復我~

這個Example是spring的嗎,我復制你的代碼報這個無法解析

0 回復 有任何疑惑可以回復我~
#1

qq_不歌_0

最好還是自己敲一遍
2018-05-12 回復 有任何疑惑可以回復我~

轉載@未來_0004? 的回答

自問自答,找到問題所在了,是由于jdk8的原因,有可能和spring boot的版本也關系,

兩種方式可選?注冊,返回類是Optional<Girl>,?Optional是jdk8自帶的

@GetMapping(value = "/girls/{id}")
public Optional<Girl> girlFindOne(@PathVariable("id") Integer id) {

? ?//直接用findById查找
? ?//return ?girlRepository.findById(id);

? ?//構通Example查找

? ?Girl girl = new Girl();
? ?girl.setId(id);
? ?Example<Girl> example = Example.of(girl);
? ?return girlRepository.findOne(example);
}


https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#query-by-example.usage

更新迭代太快了,小白學起來吃力,好無奈


7 回復 有任何疑惑可以回復我~
#1

Aouty

提示沒有Optional類型怎么辦?
2018-03-08 回復 有任何疑惑可以回復我~
#2

Aouty

按照你的方式問題已解決,謝謝!
2018-03-08 回復 有任何疑惑可以回復我~
#3

Irma_C

可以了 使用你的這兩個方法都無問題了,太謝謝了
2018-03-09 回復 有任何疑惑可以回復我~
#4

qq_楚門_7 回復 Aouty

Optional是jdk1.8新增的,可能是你的jdk版本過低
2018-08-21 回復 有任何疑惑可以回復我~
查看1條回復

我也是這個問題,同求

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
2小時學會Spring Boot
  • 參與學習       151526    人
  • 解答問題       1132    個

Spring Boot入門視頻教程,你將學會使用Spring Boot快速構建應用程序

進入課程

findOne方法是findOne(Example<S> example) 返回Optional<S>,為什么我的findOne()方法會報錯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號