当我进行元查询以检索实体属性(列)时,我只检索以下内容:
类别:属性 ID: 0名称: propDate property_representation = INT64
我没有足够的信息将该属性映射到java.util.Date类,因为INT64可以是java.lang.Byte、java.lang.Short、java.lang.Integer、java.lang.Long。
在gae控制台/数据存储查看器中,我看到日期是格式化的.它是从元数据还是从数据中解码的?
知道吗!?
发布于 2011-08-08 13:55:58
App数据存储是无模式的。元数据查询返回有关已编入索引的属性的信息,但对实体中的实际数据一无所知。实际上,您可以拥有相同类型的实体,这些实体对于同一属性名称具有不同的类型,如果这些类型具有相同的底层表示形式,则它们在元数据中将无法区分。您将在数据存储查看器中注意到,视图表中的列(在RDBMS意义上不应被视为“列”)没有使用类型标记。这不仅仅是一个UI选择;这是因为在这个级别上根本没有属性名称的类型。
实体中每个属性的实际数据存储类型都存储在协议缓冲区中的实体中。这些不是Java (或Python)类型,而是诸如“atom:float”、"georss:point“、"gd:when”等(当然还有更熟悉的"int“、"float”、"string")之类的类型,并且可以在数据存储查看器中显示单个实体,因为它们实际上已经被反序列化。在Java和Python代码中,应用程序通过数据存储API将它们映射到Java和Python类型。但是,存储在数据存储中的数据“是一个java.util.Date”是没有任何意义的;数据存储为gd.when,可以从与datetime.date相同的数据存储中读取。
https://stackoverflow.com/questions/6982833
复制相似问题