2012-10-11 52 views
0

我有一個包含帶有JDO註釋的java類的web項目。我的數據庫是MongoDB。我在我的項目中使用了datanucleus。要保留我的Java對象在我的數據庫,我用這個代碼:在Mongodb-dataneucleus中更新文檔

ListAcc list = new ListAcc(); 
    list.name = "created"; 
    pm.makePersistent(list); 

然後,我找回我的文檔使用此代碼:

ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746"); 

在那之前,一切正常。現在,我想更新我的文檔。爲此,我使用此代碼:

Transaction tx = pm.currentTransaction(); 
    tx.begin(); 
    try { 
     ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746"); 
     l.name = "changing"; 
     tx.commit(); 
    } catch(Exception e) { 
     tx.rollback(); 
    } 

但是,此操作不會更新我的文檔。

你能幫我更新我的文檔嗎?

非常感謝

回答

1

你是說你對類更新PUBLIC場? 首先,它使用公共字段是不好的編程習慣,其次如果你想在持久化上下文中做到這一點,你必須註解更新這些公共字段的類作爲@PersistenceAware(或者只使用類的setter方法)。所有這些都在DN文檔中

+0

確實......它的工作原理。謝謝 – user1636532