是否可以从元数据_property_解码属性类



当我做一个元查询来检索实体属性(列)时,我只检索这个:

<<p>: 属性/strong>ID: 0名称:propDateproperty_representation = INT64

我没有足够的信息将这个属性映射到java.util.Date类,因为INT64可以是java.lang。字节,. lang。短,. lang。整数,java.lang.Long

在gae控制台/数据存储查看器中,我看到日期被格式化了…是从元数据还是从数据解码的?

你知道吗?

App Engine数据存储是无模式的。元数据查询返回关于被索引的属性的信息,但对实体中的实际数据一无所知。实际上,对于相同的属性名,您可以拥有具有不同类型的相同类型的实体,如果这些类型具有相同的底层表示,则它们在元数据中是无法区分的。您将注意到,在数据存储查看器中,视图表中的列(在RDBMS意义上,这些列不应该被认为是"列")没有标记为类型。这不仅仅是一个UI选择;这是因为在该级别上属性名本身没有类型。

实体中每个属性的实际数据存储类型与协议缓冲区中的实体一起存储。这些不是Java(或Python)类型,而是像"atom:category"、"georss:point"、"gd:when"等类型(当然,还有更熟悉的"int"、"float"、"string"),并且可以在数据存储查看器中显示单个实体,因为它们实际上已经被反序列化了。在Java和Python代码中,这些由应用程序通过数据存储API映射到Java和Python类型。但是,存储在数据存储中的数据"是"java.util.Date是没有意义的;它被存储为gd.when,可以从与Python datetime.date相同的数据存储中读取。

最新更新