java - spring-data Jpa 不需要執(zhí)行save 語(yǔ)句,Set字段就可以自動(dòng)執(zhí)行保存的方法?求解
問題描述
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;}); }
//進(jìn)入斷點(diǎn),通過后端查看打印結(jié)果,發(fā)現(xiàn)先執(zhí)行select語(yǔ)句,然后又執(zhí)行update語(yǔ)句,我不是很明白為什么set以后//不需要save方法,就可以u(píng)pdate
跟代碼以后,走到這個(gè)方法,就執(zhí)行update語(yǔ)句,求那位大神看見,教下我,本人非常感謝!一定一定關(guān)注你。
問題解答
回答1:從你的的截圖來看,我并沒看到哪里執(zhí)行了update語(yǔ)句。按照我的使用經(jīng)驗(yàn)來看,是要調(diào)用save方法才會(huì)更新的
回答2:應(yīng)該是JPA發(fā)現(xiàn)你的對(duì)象dirty,在Transaction commit之前自動(dòng)執(zhí)行了。
