spring-data-jpa repository.save
如何只有update
但如果沒有找到主鍵,則不會創建新的。
目前,repository.save()將創建一個現在我的數據庫記錄,如果沒有找到如何彈出數據jpa repository.save只做更新
5
A
回答
12
Repository.save()
是插入以及更新的雙重方法,望目
有通過使用兩種機制春天,以決定是否要對實體使用插入或更新:
- 默認情況下,春天檢查實體的Id-屬性(
@Id
),以確定該實體是否是新的。如果標識符屬性爲空,則該實體被視爲新,否則不是新的。 - 另一種更好地控制這種情況的方法是實施
Persistable
。對於執行Persistable
的實體,彈簧 將調用isNew(…)
方法來判斷它是否必須是插入或已更新。
1
@ManishMaheshwari表示Repository.findeOne(Id)。 這裏是控制器的一個示例:我這種情況下,我們正在從路徑現有Id值並使其在.findOne()
@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();
}
。通過這種方式我們可以獲得我們想要更新的正確ID的配方。然後你可以做額外的邏輯或只是.save()。使用這種方法,它會用你傳入的Id更新實體。
相關問題
- 1. 彈簧數據JPA - 選擇更新行
- 2. Repository.save只在創建時提交,沒有更新
- 3. 彈出數據JPA過濾
- 4. 如何避免在更新之前選擇彈簧數據jpa
- 5. 如何在保存期間使彈簧數據jpa調用entityManager.persist(...)方法?
- 6. 在彈簧數據更新和插入查詢jpa
- 7. 彈簧數據JPA合併更新實體
- 8. 如何更新jsf數據表只有
- 9. spring jpa不會更新新的數據
- 10. JPA - 只有當方法是@Transactional時數據庫纔會更新
- 11. Jhipster或彈簧數據JPA
- 12. 彈簧數據JPA獲取
- 13. 如何更好地更新Spring數據中的JPA實體?
- 14. 更新主鍵彈簧引導jpa
- 15. 如何做彈簧數據驗證
- 16. 如何更新引導彈出文本?
- 17. 如何設置彈簧數據的JPA與多個數據源
- 18. 如何做css div彈出使用只能javascript滾動?
- 19. 彈出數據JPA OutOfMemoryError:超出GC開銷限制
- 20. 春數據JPA更新多行
- 21. JPA - 更新二進制數據
- 22. Java JPA,如何做到無需使用destroy-create更新表格?
- 23. 彈簧引導數據redis集成彈簧數據jpa
- 24. 彈簧數據JPA沒有插入的
- 25. 如何在save()之前停止彈簧數據JPA執行SELECT?
- 26. 分組查詢DSL +彈簧數據JPA拋出NoSuchElementException
- 27. 彈簧數據JPA不刪除實體
- 28. 羣組事務 - 彈簧數據JPA- Boot1.4.2
- 29. 混合彈簧數據jpa +彈簧數據neo4j。 users服務
- 30. 如何閱讀從彈出DOM數據
你能告訴我如何實現它嗎? – Awakening 2015-03-06 08:44:16
你打算實施什麼? 'save()'操作由Spring Data JPA框架實現。 – 2015-03-07 09:53:15
我的意思是讓'保存'操作只做更新,但不創建 – Awakening 2015-03-08 00:54:02