java - spring-data Jpa 不需要執行save 語句,Set欄位就可以自動執行已儲存的方法?求解
仅有的幸福
仅有的幸福 2017-06-30 09:55:20
0
3
1449
public Optional<User> requestPasswordReset(String mail) {
    return userRepository.findOneByEmail(mail)
        .filter(User::getActivated) 
        .map(user -> {// updata
            user.setResetKey(RandomUtil.generateResetKey());
            user.setResetDate(Instant.now()); 
            return user;
        });
    
}

//進入斷點,透過後端查看列印結果,發現先執行select語句,然後又執行update語句,我不是很明白為什麼set以後
//不需要save方法,就可以update

跟程式碼以後,走到這個方法,就執行update語句,求那位大神看見,教下我,本人非常感謝!一定一定要關注你。

#
仅有的幸福
仅有的幸福

全部回覆(3)
phpcn_u1582

從你的截圖來看,我並沒看到哪裡執行了update語句。依照我的使用經驗來看,是要呼叫save方法才會更新的

女神的闺蜜爱上我

應該是JPA發現你的物件dirty,在Transaction commit之前自動執行了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板