-2
我有2個版本相同的代碼(我假設):彈簧數據JpaRepository可選否則容易重複的實體
Optional<UserHolder> user = userHolderRepository.findOneByUserId(source.getId());
return user.isPresent()
? user.get()
: userHolderRepository.save(new UserHolder(source.getId(), source.getLogin()));
和
UserHolder userHolder = userHolderRepository
.findOneByUserId(source.getId())
.orElse(userHolderRepository.save(new UserHolder(source.getId(), source.getLogin())));
return userHolder;
我也得到了Message
實體@ManyToOne
userHolders。
如果我調用上面的代碼來獲取用戶持有者(如果存在,或者創建一個代替),第一個代碼段運行良好,而第二個代碼段總是導致創建具有相同ID的第二個userHolder。
我認爲代碼片段的行爲不完全相同,但我應該如何編寫Optional
樣式代碼以與第一個片段完全相同?
謝謝!