自 4 天前以来,在随机的短时间内,我部署的应用程序抛出此错误:
org.datanucleus.sco.backed.ArrayList cannot be cast to 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 的引用,但它不存在。
有什么想法吗?
最佳答案
这听起来可能很愚蠢,但是您是否尝试过使用 List
而不是 Set
?
再次查看文档后,除了 List
之外,我无法从 Google 中找到任何包含 Collection
的示例。
阅读您的问题,无论您做什么,JPA datanucleus impl 似乎确实在使用他们自己的 ArrayList 实现。我不知道为什么问题会随机发生......
关于java - org.datanucleus.sco.backed.ArrayList 无法转换为 java.util.Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307734/