2009-11-27 91 views
0

需要將一個字段更新爲一堆記錄中的相同值。使用DAO/ORM結構,我會檢索每個父對象,遍歷每個子對象,更新它的字段,然後保存它。DAO,ORM和查詢

只寫SQL:update table set field = value where criteria = specified會更快。

我如何將這些東西放在一起?我只是堅持道的結構:

for (Table t : getTableDao().getTables()){ 
    for(Child c : t.getChildren()){ 
    c.setValue(1); 
    getChildrenDao().save(c); 
    } 
} 

乾杯。

+0

您使用的是哪個ORM?許多人可以根據需要編寫一些sql。 – 2009-11-27 05:25:54

+0

手工製作:O。目前的項目只有5個主表,所以我很快創建了一個帶有一些基本ORM的簡單dao系統。我會允許查詢我認爲的道奇。該應用程序將部署在非常有限的機器上,所以我關心使用Hibernate。有嵌入式德比可以使用的輕量級ORM嗎? – StillLearning 2009-11-30 03:22:13

+0

哦,它是一個基於Java SE 5的應用程序,與Swing – StillLearning 2009-11-30 03:23:00

回答

1

通常情況下,不應該在可能被認爲是「正常ORM」的方式下進行大規模更新,正如您所描述的那樣,循環遍歷每個對象。

任何合理的ORM都有一種機制讓您按照您的建議運行正常的SQL更新語句,這通常是正確的方法。

僅僅因爲您使用的是ORM並不意味着您無法利用底下的基於關係集的系統。當對象有意義時使用對象,並在SQL有意義時使用SQL。

+0

聽起來不錯。乾杯。 – StillLearning 2009-12-02 04:28:04