2012-01-13 131 views
1

我有一個類:持久性錯誤

@PersistenceCapable 
public class X{ 
    @Persistent 
    @Order(extensions = @Extension(vendorName = "datanucleus", key = "list-ordering", value = "date desc")) 
    private List<Race> list; 

    @Persistent 
    private Float value; 
} 

當我試圖讓:

PersistenceManager pm = PMF.get().getPersistenceManager(); 
try { 
    X x = pm.getObjectById(X.class, id); 
    x.setValue(listObject.getValue().floatValue()); 
    x.getList().add(listObject); 
} finally { 
    pm.close(); 
} 

我期待在我的X對象,我會添加一個listValue並設置'的值值'。但結果只是增加了列表中的值,忽略了凝膠價值的設置!

有什麼不對嗎?

+0

如果'listObject.getValue()。floatValue()'返回'null',可能會發生這種情況。可以? – 2012-01-14 04:51:28

+0

不。它總是返回一個大於零的值。 – Victor 2012-01-14 18:05:04

+0

這是一個併發錯誤! – Victor 2012-01-16 19:04:43

回答

0

這是一個併發錯誤。

該方法是從另一段改變同一對象的代碼中調用的。所以這個調用的變化將被忽略。