我有一个Java类,它包含一些嵌套类,如下所示:
public class OuterClass{
@PrimaryKey
private String id;
@Persistent
private String name;
// --- blah blah
static class MyNestedClass{
//--- properties declaration
}
}
这个类工作得很好,基本上只有一个结构(OuterClass),我可以存储n嵌套结构,每个结构都作为一个数据存储表。你知道吗
用datastore viewer
检查我的ds我看到我现在有一个名为OuterClass$MyNestedClass
的表,我可以像这样成功地在此表上运行GQL查询:
//--- note the wrapping quotation marks on the table name
SELECT * FROM "OuterClass$MyNestedClass" where something = '100'
到现在一切都好。现在我需要创建一个google app engine python
方法来清空嵌套的类表。我已经用其他的表/类做过了,但从来没有用嵌套类做过。你知道吗
这是我的python代码:
import cgi
import datetime
import urllib
import webapp2
from google.appengine.ext import db
class OuterClass$MyNestedClass(db.Model):
name = db.StringProperty()
surname= db.StringProperty()
age = db.StringProperty()
class emptyMyNestedClassHandler(webapp2.RequestHandler):
def get(self):
nestedclass= db.GqlQuery("SELECT __key__ FROM \"OuterClass$MyNestedClass\"")
count = 0
for p in nestedclass:
count += 1
db.delete(nestedclass)
self.response.out.write("Deleted SMyNestedClass Entities: " + str(count))
app = webapp2.WSGIApplication([
('/emptyMyNestedClass', emptyMyNestedClassHandler)
], debug=True)
这就是我犯的错误
class OuterClass$MyNestedClass(db.Model):
^
SyntaxError: invalid syntax
我试图将类名从OuterClass$MyNestedClass
更改为MyNestedClass
,但出现以下错误:
KindError: No implementation for kind 'OuterClass$MyNestedClass'
为了使python类正常工作,我必须将哪个名称分配给python类?我如何处理美元的问题?你知道吗
希望我说得够清楚,谢谢
在Matt's suggestion之后,我的JAVA类现在如下所示:
public class OuterClass{
@PrimaryKey
private String id;
@Persistent
private String name;
// --- blah blah
@PersistenceCapable( table="NestedClass")
@Embedded
static class NestedClass{
//--- properties declaration
}
}
这是Python代码:
import cgi
import datetime
import urllib
import webapp2
from google.appengine.ext import db
class NestedClass(db.Model):
name = db.StringProperty()
surname = db.StringProperty()
age = db.StringProperty()
class emptyNestedClassHandler(webapp2.RequestHandler):
def get(self):
nestedclass= db.GqlQuery("SELECT __key__ FROM NestedClass")
count = 0
for p in nestedclass:
count += 1
db.delete(nestedclass)
self.response.out.write("Deleted NestedClassEntities: " + str(count))
app = webapp2.WSGIApplication([
('/emptyNestedClass', emptyNestedClassHandler)
], debug=True)
注意,我有来声明类NestedClass
。你知道吗
谢谢!你知道吗
请查看JDO annotations的资源。你知道吗
您可能需要这样注释您的类:
通过GQL,您应该能够做到这一点:
相关问题 更多 >
编程相关推荐