GAE ClassCastException Long不能强制转换为
问题描述:
尝试从数据存储实体中获取数据时发生异常。 这里是我的代码:GAE ClassCastException Long不能强制转换为
PersistenceManager pmf = PMF.get().getPersistenceManager();
try {
Query query = pmf.newQuery(DocHeader.class);
@SuppressWarnings("unchecked")
List<DocHeader> docHeaders = (List<DocHeader>) query.execute();
任何人都可以在这个问题上提供帮助。
这里是我的对象
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class DocHeader {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.SEQUENCE)
private Long docHeaderId;
@Persistent
private Double previousPayment;
@Persistent
private Double currentBalance;
@Persistent
private Double totalAccountBalance;
@Persistent
private String accountRepresentative;
@Persistent
private Double minPayment;
}
答
例外
ClassCastException异常长不能转换翻一番
意味着你至少有一个DocHeader
实体保存在数据存储在您保存它的一个财产是Long
号码,但在你的Java实体中你指定它为Double
并且当您想要查询它并将其转换回Java类时,尝试转换Long
→Double
将引发异常。
你可能做使用低级别的数据存储区API是只读的所有DocHeader
entitites,并更改Long
属性Double
这应该是摆在首位Double
,然后重新保存这些实体。或者,如果当前实体不重要(例如测试数据),只需删除它们。
“DocHeader”是你自己的类吗? – icza 2014-10-08 12:54:06
是的,这是我自己的class.and我存储数据使用这个class.when提取数据显示错误 – 2014-10-08 12:55:06
你可以发布这个类的来源(编辑问题)? – icza 2014-10-08 12:59:19