Jak tylko robić tylko update
, ale NIE tworzyć nowe, jeśli klucz podstawowy nie zostanie znaleziony.
Obecnie repository.save() utworzy teraz nagrywać w mojej bazy danych, jeśli nie znalezionow jaki sposób repozytorium danych źródłowych spring rescue tylko aktualizować
5
A
Odpowiedz
12
Repository.save()
jest podwójna metoda przeznaczona dla Insert jak również Aktualizacji
Istnieją dwa mechanizmy wykorzystywane przez wiosna zdecydować, czy należy go używać Insert lub Aktualizacja na jednostki:
- domyślnie wiosnę sprawdza obiekt, aby ustalić, czy obiekt jest nowy, czy nie. Jeśli właściwość identyfikatora ma wartość NULL, wówczas jednostka jest traktowana jako nowa, w przeciwnym razie nie jest nowa.
- Innym sposobem uzyskania lepszej kontroli nad tym problemem jest wdrożenie
Persistable
. W przypadku podmiotów, które implementująPersistable
, Spring wywoła metodęisNew(…)
, aby ustalić, czy musi to być Wstawiona lub Zaktualizowana.
1
@ManishMaheshwari oznaczała Repository.findeOne (Id). Oto przykład z kontrolerem:
@RequestMapping(value = "/recipes/{id}/edit", method = RequestMethod.POST)
public String saveEditedRecipe(@PathVariable("id") Long id){
Recipe recipe = recipes.findOne(id);
//do anything you want
recipes.save(recipe);
return "redirect:/recipes/" + recipe.getId();
}
I w tym przypadku jesteśmy coraz istniejącą wartość ID z drogi i przekazania go w .findOne(). W ten sposób otrzymujemy przepis z poprawnym identyfikatorem, który chcemy zaktualizować. Następnie możesz zrobić dodatkową logikę lub po prostu .save(). Korzystając z tego podejścia, zaktualizuje on jednostkę z identyfikatorem, który przekazałeś na pewno.
Powiązane problemy
- 1. Zapytanie repozytorium z parametrem listy w danych źródłowych MongoDB
- 2. Omówienie danych źródłowych Interfejs JPA @NoRepositoryBean
- 3. Jak odsłonić niestandardowe repozytorium crud z repozytorium danych Spring REST?
- 4. W jaki sposób Github wykrywa repozytorium lustrzane?
- 5. git tylko część repozytorium
- 6. W jaki sposób mogę automatycznie aktualizować import funkcji funkcji jednostki
- 7. Jaki jest najlepszy sposób udostępniania plików źródłowych Delphi wśród projektów?
- 8. @DbRef nie zapisuje automatycznie obiektu potomnego w danych źródłowych mongodb
- 9. W jaki sposób kompresuje pliki mercurial w repozytorium?
- 10. Sposób logicznego porządkowania plików źródłowych w C++
- 11. W jaki sposób mogę wyposażyć w utworzony wątek Spring TaskExecutor?
- 12. W jaki sposób Spring MVC obsługuje wielu użytkowników?
- 13. Jak aktualizować tylko zmodyfikowane wartości (EntityFramework 5.0)?
- 14. Policz w Spring Data Repozytorium MongoDB
- 15. W jaki sposób tworzysz strukturę przepływu pracy repozytorium Git?
- 16. Jak skonfigurować nazwę kolekcji MongoDb dla klasy w danych źródłowych
- 17. Filtr obiekt dziecko w Spring Query Danych
- 18. W jaki sposób przechwytujący Soap Spring może modyfikować zawartość wiadomości?
- 19. Jaki jest prawidłowy sposób rejestracji haka zamknięcia w Spring 3?
- 20. W jaki sposób poprawnie zaimplementować klienta java spring-websocket
- 21. Jaki jest właściwy sposób korzystania z PreparedStatementCreator w Spring JDBC?
- 22. Jaki jest najlepszy sposób na wyczyszczenie repozytorium Subversion?
- 23. Klasy wewnętrzne jako repozytorium danych wiosna
- 24. Jaki jest najlepszy sposób wykonywania transakcji rozproszonych w wielu bazach danych przy użyciu Spring i Hibernate
- 25. java.util.NoSuchElementException tworzenia Wiosna repozytorium danych JPA fasoli
- 26. Tworzenie jardów źródłowych i dokumentów
- 27. W jaki sposób protobuf-net obsługuje tylko pola readonly?
- 28. W jaki sposób zaimplementowano kursor bazy danych Android w szczegółach?
- 29. W jaki sposób można aktualizować operację SynMemo Undo/RedoList podczas usuwania i wstawiania linii
- 30. Jak aktualizować lokalną bazę danych parse.com przyrostowo?
czy możesz mi powiedzieć, jak to wdrożyć? – Awakening
Czego chcesz zaimplementować? Operacja 'save()' jest implementowana przez Spring Data JPA framework. –
Mam na myśli, że operacja "zapisz" tylko aktualizuje, ale nie tworzy – Awakening