从Repository获取实体,如果它为null,则在SpringDataJpa中创建一个新实体



我通过id从Repository获得的Currency实体可能为null。在这种情况下,我想用这个id创建新的Currency实体,然后再次将其持久化。

我带来了以下解决方案

Optional<Currency> currencyOptional = currencyRepository.findById(1L);
Currency usd;
if (currencyOptional.isEmpty()) {
usd = Currency.builder()
.id(1L)
.currencyCode(ECurrencyCode.USD)
.rates(new HashSet<>())
.build();
} else {
usd = currencyOptional.get();
}

有比这更好的解决方案吗?

这个怎么样:

Currency usd = currencyRepository.findById(1L).orElse(
Currency.builder()
.id(1L)
.currencyCode(ECurrencyCode.USD)
.rates(new HashSet<>())
.build());

最新更新