Google App Engine by page.jsp
<%
Query query = pm.newQuery(Store.class);
query.setFilter("id=='" + store + "'");
query.setOrdering("name asc");
List<Store> aList = (List<Store>) query.execute();
System.out.println("aList==isEmpty?"+aList.isEmpty());
%>
例外:
java.lang.ClassCastException: com.google.appengine.api.datastore.Blob cannot be cast to java.lang.String
谁能帮帮我?
答案 0 :(得分:1)
注意:希望将此问题标记为GAE ClassCastException Long cannot be cast to double的可能副本,但无法解决(因为StackOverflow表示其他问题没有接受的答案或答案为正分数。)
该异常意味着您在数据存储区中保存了至少一个Store
实体,并使用属性类型Blob
将其保存在您的Java实体中,并将其指定为String
您想要查询它并将其转换回Java类,尝试转换Blob
- &gt; String
抛出异常。
您可以执行的操作是使用低级数据存储api读取所有Store
个权限,并将Blob
属性更改为String
,这些属性应为String
in {首先,然后重新保存这些实体(或者如果它应该是String
,则将Java字段的类型从Blob
更改为Blob
。或者,如果当前实体不重要(例如测试数据),只需删除它们即可。
答案 1 :(得分:0)
对不起!! 我解决了这个问题。 回答:
修改
<%@ page import="java.util.*"%>
要
<%@ page import="java.util.List" %>