Google App Engine数据存储区支持哪些数据类型?

时间:2010-04-26 05:03:44

标签: java google-app-engine jpa google-cloud-datastore

我知道如何在谷歌BigTable中表。我对此有一个疑问。谷歌BigTable支持的所有数据类型是什么。

7 个答案:

答案 0 :(得分:4)

Class and Field Annotations引用Using JPA with App Engine部分:

  

要访问的数据类的字段   必须存储在数据存储区中   是一种坚持的类型   default或expliclty声明为   执着。你可以找到一张图表   详细说明JPA默认持久性   the DataNucleus website上的行为。   要将字段显式声明为   持久的,你给它一个@Basic   注释:

import java.util.Date;
import javax.persistence.Enumerated;

import com.google.appengine.api.datastore.ShortBlob;

// ...
    @Basic
    private ShortBlob data;
     

字段的类型可以是任何字段   以下内容:

     
      
  • 数据存储区支持的core types之一
  •   
  • a的值的集合(例如java.util.List<...>)   核心数据存储类型
  •   
  • @Entity
  • 的实例或实例集合   
  • 嵌入式类,存储为实体上的属性
  •   

要定义并使用EmailPhoneNumber作为数据类型,请为其创建实体并将其映射为@OneToOne或制作@Embeddable

答案 1 :(得分:2)

David上面的回答给出了Appengine原生支持的数据类型列表。但要使用GAE编写实际应用程序,您需要支持更多数据类型和模式。除了JPA,JDO和LowLevel api及其局限性和相关问题并不实用。

尝试完所有后,我们选择了Objectify并且从未回头。它是专为GAE设计的非常有效的数据访问抽象层。回到您的问题,使用Objectify为您自己的数据类型添加序列化器非常容易。

更新: 在原始答案之后3年,我可以说Objectify是我做出的最好的软件库选择之一。

答案 2 :(得分:2)

数据存储支持的数据类型列在

Datastore > Entities, Properties, and Keys > Properties and value types

这并不难找到。

答案 3 :(得分:1)

Here是App Engine for Java中原生支持的数据类型列表。

答案 4 :(得分:0)

Bigtable可以存储所有Object类型。它只是一个巨大的键值字典

答案 5 :(得分:0)

答案 6 :(得分:0)

在Java中查找受支持的低级属性类型的最终方法是使用DataTypeUtil

e.g。

if (!DataTypeUtil.isSupportedType(value.getClass())) {
  // Convert the value to a supported type.
}