Jsp 按列表查询中的ClassCastException<;类别>;
googleappengine by page.jspJsp 按列表查询中的ClassCastException<;类别>;,jsp,google-app-engine,exception,google-cloud-datastore,Jsp,Google App Engine,Exception,Google Cloud Datastore,googleappengine 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("aL
<%
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());
%>
谁能帮助我?注意:想将此问题标记为可能的重复问题,但无法(因为StackOverflow说另一个问题没有被接受的答案或分数为正的答案)
异常意味着至少有一个
存储
实体保存在数据存储中,您使用属性类型Blob
保存它,但在Java实体中,您将它指定为字符串
,并且当您要查询它并将其转换回Java类时,尝试的转换Blob
->String
引发异常
您可以使用低级数据存储api读取所有存储
实体,并将Blob
属性更改为字符串
,这些属性首先应该是字符串
,然后重新保存这些实体(或者将Java字段的类型从String
更改为Blob
,如果它应该是Blob
)。或者如果当前实体不重要(例如测试数据),只需删除它们
文档:对不起!!
我解决了这个问题。
答复:
修改
到
如果只有一个或几个实体存在此问题,也可以在数据存储查看器中找到有问题的属性,然后手动将其重置为null,然后再重置为String。
java.lang.ClassCastException: com.google.appengine.api.datastore.Blob cannot be cast to java.lang.String
<%@ page import="java.util.*"%>
<%@ page import="java.util.List" %>