正如我們所知,Hibernate
有一個非常好的功能SaveOrUpdate當我們傳遞任何對象到這個方法它知道數據將是update
或新的記錄將被添加到數據庫中。此功能是否也可在JOOQ
或在我的代碼中,我必須處理這個?JOOQ VS休眠行爲
1
A
回答
4
jOOQ也一樣。如果更改記錄的主鍵,則它將使用INSERT
,否則將使用UPDATE
。
事實上,當您從數據庫中讀取記錄時,調用store()
將如您所期望的那樣觸發UPDATE
。如果你創建一個新的記錄,那麼它將會是INSERT
ed。
對於2.6來說,克隆一個記錄然後讓jOOQ去更新它是有點困難的(因爲克隆會在新的實例中設置主鍵,因此將它標記爲「new」 - > insert)。
1
如果您從數據庫中讀取記錄並調用record.store(),您將擁有與hibernate saveOrUpdate方法相同的行爲,它完美地工作!
但在絕大多數情況下,您不會從數據庫中讀取記錄,您將從控制器或視圖接收記錄,例如,在這種情況下,record.store()方法不會更新,它始終插入即使你有id設置。
現在我正在執行我自己的saveOrUpdate,通過記錄ID進行檢查。
public int saveOrUpdate(Record record) {
if(record.getId() != null) {
return record.update();
}
return record.store();
}
相關問題
- 1. GenerationType.AUTO VS GenerationType.IDENTITY休眠
- 2. 休眠saveOrUpdate行爲
- 3. JPA /休眠爲DDL
- 4. 多租戶:Spring VS休眠
- 5. 枚舉VS TYPEID休眠
- 6. 休眠:OnDelete VS級聯= CascadeType.REMOVE
- 7. 休眠的openSession()VS的getCurrentSession()
- 8. 休眠:加載vs得到
- 9. 爲休眠
- 10. 爲了在休眠
- 11. 休眠:重用休眠類
- 12. 使用JPA(休眠)VS存儲過程
- 13. 休眠性能問題:ScrollableResults vs firstResult/maxResult
- 14. JPA /休眠ManyToMany vs雙面OneToMany/ManyToOne
- 15. 休眠級聯vs獨立調用
- 16. 休眠節省VS saveOrUpdate VS更新VS堅持
- 17. 奇怪的休眠緩存行爲
- 18. 休眠@Embeddable行爲二次表
- 19. (春季)JPA /休眠奇怪的行爲
- 20. JPA /休眠 - InheritanceType.JOINED行爲像InheritanceType.TABLE_PER_CLASS
- 21. 休眠保存奇怪的行爲
- 22. 幫助瞭解休眠行爲/錯誤
- 23. 休眠:
- 24. 休眠。
- 25. 休眠加入2行
- 26. 使用重複行休眠
- 27. 休眠和JSF - 乘以行
- 28. 休眠的SchemaExport命令行
- 29. 休眠:ConstraintViolationException並行插入
- 30. 休眠不刪除行
不,我的意思是'店()'方法不會塔一樣'saveOrUpdate()方法' –
正是你所說的 「燒更新()」 是什麼意思? –
我想射擊更新()查詢 – 2013-11-15 15:53:41