2012-01-13 111 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

这是一个并发错误。

该方法是从另一段改变同一对象的代码中调用的。所以这个调用的变化将被忽略。