Ich habe 2 Versionen des gleichen Code (Ich gehe davon aus):feder Daten JpaRepository Optional OrElse doppelte Einheit
Optional<UserHolder> user = userHolderRepository.findOneByUserId(source.getId());
return user.isPresent()
? user.get()
: userHolderRepository.save(new UserHolder(source.getId(), source.getLogin()));
und
UserHolder userHolder = userHolderRepository
.findOneByUserId(source.getId())
.orElse(userHolderRepository.save(new UserHolder(source.getId(), source.getLogin())));
return userHolder;
Ich habe auch eine Message
Einheit mit @ManyToOne
userHolders.
Wenn ich den obigen Code aufrufen, um einen Benutzerhalter zu erhalten (falls vorhanden, oder stattdessen einen erstellen), funktioniert das erste Snippet gut, während das zweite Snippet immer dazu führt, einen zweiten userHolder mit derselben ID zu erstellen.
ich denke, die Code-Snippets verhalten sich nicht identisch, aber wie sollte ich den Optional
Style-Code schreiben, um genau das gleiche wie das erste Snippet zu sein?
Danke!