2013-10-21 74 views
0

這裏是我的問題,因爲這段代碼:的Java:獲取一個引用的數據基礎對象,然後修改它

studentOutcomeService.getAll() 
        .get(getStudentOutcomeByID(
          selectedStudentOutcome.getId().intValue())) 
        .setDescription(description); 

studentOutcomeService.getAll() 
        .get(getStudentOutcomeByID(
          selectedStudentOutcome.getId().intValue())) 
        .setSequenceNumber(Integer.valueOf(sequenceNumber)); 

studentOutcomeService.getAll() 
        .get(getStudentOutcomeByID(
          selectedStudentOutcome.getId().intValue())) 
        .setShortName(shortName); 

studentOutcomeService.getAll() 
        .get(getStudentOutcomeByID(
          selectedStudentOutcome.getId().intValue())) 
        .setIdentifier(identifier); 

我不滿的是,我查詢數據庫4次,以不斷更新的字段。

我調整了創建一個StudentOutcome對象,並存儲那裏發現的東西,然後修改我創建的對象,但它看起來像創建新對象時儘管設置爲等於數據庫中找到的對象,但使用=,操作符時,對新StudentOutcome對象所做的更改不適用於它最初設置的值。

我該如何提高效率?我知道有更好的辦法。

回答

0

嘗試要麼

StudentOutcome toUpdate = studentOutcomeService.getAll().get(
    getStudentOutcomeByID(selectedStudentOutcome.getId())); 
toUpdate.setDescription(description); 
toUpdate.setSequenceNumber(Integer.valueOf(sequenceNumber)); 
toUpdate.setShortName(shortName); 
toUpdate.setIdentifier(identifier); 

甚至只是

StudentOutcome toUpdate = getStudentOutcomeByID(selectedStudentOutcome.getId()); 
toUpdate.setDescription(description); 
toUpdate.setSequenceNumber(Integer.valueOf(sequenceNumber)); 
toUpdate.setShortName(shortName); 
toUpdate.setIdentifier(identifier); 
+0

所以現在當更新所被修改,因爲它最初設定在什麼在DB中發現,其更新將應用到對象數據庫呢? – user2879618

+0

如果要更新數據庫,則必須單獨更新數據庫。與Java對象混淆通常不會自動更新數據庫。 –

+0

我的問題是更新該數據庫條目,這是完整的目的。我需要進行很多查詢來修改每一列嗎? – user2879618

相關問題