org.datanucleus.sco.backed.ArrayList无法强制转换为java.util.Set

时间:2014-03-10 17:56:54

标签: java google-app-engine gwt arraylist google-cloud-datastore

从4天前开始,在随机的短时间内,我部署的应用程序抛出了这个错误:

  

org.datanucleus.sco.backed.ArrayList无法强制转换为java.util.Set

我们正在使用GWT 2.4 / Java 1.7(我们最近从1.6迁移到1.7)

在使用字符串集检索或持久化实体时会发生这种情况:

import java.util.HashSet;
import java.util.Set;
...
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class DbAccount {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
...
    @Persistent
    private Set<String> accounts;
...
    public DbAccount(SerAccount account) throws Exception {
        ...
        this.accounts= new HashSet<String>();
        ...
        key = KeyFactory.createKey(DbCuentas.class.getSimpleName(), this.id);
    }
}

我已检查整个项目以获取对 org.datanucleus.sco.backed.ArrayList 的引用,但它不存在。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能听起来很愚蠢,但您是否尝试使用List代替Set

再次检出文档后,我无法通过Collection以外的List找到Google的任何示例。

阅读你的问题,看起来JPA datanucleus impl确实正在使用他们自己的ArrayList实现,无论你做什么。我不知道为什么问题会随机发生......