标签: objectify

多租户如何在App Engine中使用Objectify工作?

如何在app引擎中使用名称空间的多租户工作?我的应用程序有多个用户,每个用户有点像多租户中的租户.他们的URL以domain/customer/companyToken#pageName?param1¶m2开头.因此,如果我想为每个客户应用带有命名空间的多租户,那么从Google文档中,您需要为每个客户分配NamespaceManager的唯一ID,如下所示:

NamespaceManager.set(request.getServerName());
Run Code Online (Sandbox Code Playgroud)

现在我有几个问题.

  1. App Engine的命名空间多租户如何真正起作用?

  2. 它如何改变我们一般访问数据的方式?

  3. 它如何改变我们使用Objectify访问数据的方式?

  4. 首先,我对应用程序的上述应用的理解是,在检索数据时,所有与上述客户(租户)相关的数据都聚集在同一名称空间中,那么我们如何使用Objectify访问数据?目前公司obj作为与客户相关的所有obj的父母.(所以我的申请?)

非常感谢你提前.

java google-app-engine multi-tenant objectify

4
推荐指数
1
解决办法
1849
查看次数

使用Objectify + google appengine进行不区分大小写的过滤器查询

是否有一种简单的方法可以使用Objectify + google appengine(Java)进行不区分大小写的过滤查询?基本上这是我想要做的,除了我需要电子邮件上的过滤器不区分大小写.

Objectify objectifyService = ObjectifyService.begin();
objectifyService.query(AppUser.class).filter("email", email).get();
Run Code Online (Sandbox Code Playgroud)

java google-app-engine case-insensitive objectify

4
推荐指数
1
解决办法
2099
查看次数

客体化和实体组

以下是所有objectify/app引擎专家的问题:

我通过将父对象的键存储在子对象中来创建具有父/子关系的ojectes.它存储在Key类型的对象中.例如,假设我有一个汽车对象和轮胎对象.轮胎对象将父键存储在Key类型的变量中.

@Entity
Public class Tire{
     @Id Long id;
     Key<Car> ParentKey;

     int size;
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我将需要获得所有轮胎给定一辆车.我可以通过查询来执行此操作:轮胎轮胎= oft.query(Tire.class).filter("ParentKey",carKey).get();

这是一种非常有效的方法来实现这一目标吗?这会导致实体组出现任何问题吗?这对大量汽车和轮胎有效吗?

google-app-engine persistence objectify

4
推荐指数
1
解决办法
2873
查看次数

为什么电子邮件,用户名,邮政编码等作为GAE数据存储区中的实体

我已经看到在GAE数据存储区中有这么多实体,最后是字符串,至少显然.

GAE Java数据存储区实体列表

我想知道其背后的原因?索引?语义搜索?

java google-app-engine objectify google-cloud-datastore

4
推荐指数
2
解决办法
317
查看次数

Google Objectify v4由id获取

我正在尝试使用Objectify v4在App Engine中获取实体,但它不起作用.

  • 我的@Entity:Translation.class
  • @Entity的@Id我想要获取:301L

我的@Entity:

@Entity
public class Translation {
  @Id
  private Long id;
  private String text;

  public String getText() {
    return text;
  }

  public Long getId() {
    return id;
  }

  public void setText(String text) {
    this.text = text;
  }
}
Run Code Online (Sandbox Code Playgroud)

不说的请求:

Translation translation =ObjectifyService.ofy().load().type(Translation.class).id(301L).get(); // translation is null
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

 Translation translation = ObjectifyService.ofy().load().type(Translation.class).first().get(); // translation is not null
Run Code Online (Sandbox Code Playgroud)

然后:

System.out.println(translation.getId()); // translation id equal 301
Run Code Online (Sandbox Code Playgroud)

所以idfetch似乎不起作用.问题出在哪儿?

gwt objectify

4
推荐指数
1
解决办法
1209
查看次数

GWT 错误:必须运行 RequestFactory ValidationTool

每次我启动我的应用程序时,即使没有执行 listEmptyBoxes(),我也会收到“RequestFactory Validation Tool must be run...”错误。我已经有了requestfactory-apt-2.5.0-rc1.jar关于注释处理的文件。

有任何想法吗?在我的代码下面。谢谢。

我的项目.java

private void listEmptyBoxes() {
  BoxRequest boxRequest = requestFactory.boxRequest();
  boxRequest.listAllEmpty().fire(new Receiver<List<BoxProxy>>() {
    public void onSuccess(List<BoxProxy> response) { // List all phantom boxes
      Window.alert("Successful");
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

框请求.java

@Service(value=BoxDao.class, locator=DaoServiceLocator.class)
public interface BoxRequest extends RequestContext {
    Request<List<BoxProxy>> listAllEmpty();
}
Run Code Online (Sandbox Code Playgroud)

BoxDao.java

public class BoxDao extends ObjectifyDao<Box>{
    public List<Box> listAllEmpty() {
        Objectify ofy = ObjectifyService.begin();
        Query<Box> q=ofy.query(Box.class).filter("title", null).filter("description", null);
        List<Box> results = q.list();
        return results;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误

04-may-2013 12:29:18 com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost
GRAVE: …
Run Code Online (Sandbox Code Playgroud)

java gwt dao objectify requestfactory

4
推荐指数
1
解决办法
4138
查看次数

在Objectify中,如何在不知道父密钥的情况下通过ID加载实体?

我有一个objectify中的实体组,典型的SomeParentClass和SomeChildClass.我想做这样的事情从数据存储区加载SomeChildClass的实例.

ofy().load.type(SomeChildClass.class).id(idOfSomeChildClassInstace);
Run Code Online (Sandbox Code Playgroud)

这没有发现什么.似乎您需要知道SomeChildClass的父级才能从datestore获取它.我知道这是有效的.

Key<SomeChildClass> k = Key.create(someParentClass.generateKey(), SomeChildClass.class, idOfSomeChildClassInstace);
ofy().load().key(k).now;
Run Code Online (Sandbox Code Playgroud)

如果我想在不知道父级的情况下加载SomeChildClass的实例,只需具有SomeChildClass的id即可.

google-app-engine entity-framework objectify

4
推荐指数
1
解决办法
3096
查看次数

区别使用客观化

我正在谷歌和引擎和客观化,因为在过去3个小时,我一直在尝试在客体化中写一个独特的查询.任何人都可以告诉我如何在特定列的客观化中编写一个独特的查询?

此致,Sreekanth

google-app-engine objectify

4
推荐指数
1
解决办法
1071
查看次数

在对象中查询字段不为空的所有记录的有效方法

我想有效地查询索引字段以检索索引字段不为空(存在于索引中)的所有记录.要查询的字段包含Ref<T>另一个实体,如果这是相关的.

我能做的是不等式搜索,比如.filter/.filterKey("fieldname >=", "a"),a是我想要抓取的最小的ASCII.

但这有效吗?或者我可以以某种方式进行相等搜索,它会返回索引中存在的所有记录吗?

-

这就是我的数据的样子:我想过滤"overlay"列有一个键的所有记录,并省略那些没有设置字段的记录.我想尽可能使用相等过滤器,所以我不需要复合索引(因为我同时在其他字段上过滤).

数据快照

-

我可以用它来测试 != null

.filter("user >", "\uFFFD");
Run Code Online (Sandbox Code Playgroud)

这是为了测试 == null

.filter("user <", "\uFFFD");
Run Code Online (Sandbox Code Playgroud)

我猜这不是它应该做的方式.有没有办法用平等而不是不平等来解决这个问题?

google-app-engine objectify

4
推荐指数
1
解决办法
2431
查看次数

Objectify删除似乎不起作用

我正在尝试使用objectify从我的数据存储区中删除实体,但即使在关闭实例并重新启动它之后似乎也没有删除.这是实体在数据存储区中的样子(无论是在生产服务器和开发服务器上):

在此输入图像描述

这是我用来尝试删除它的代码:

@ApiMethod(name = "deleteDataVersion")
public Result deleteDataVersion(@Named("id") String id) {

    // Where id is the id of the entity in the datastore.

    if (id != null && !id.equals("")) {
        ofy().delete().type(DataVersion.class).id(id).now();
        return new Result(Result.STATUS_SUCCESS);
    } else
        return new Result(Result.STATUS_FAILED);
}
Run Code Online (Sandbox Code Playgroud)

我也试过这段代码:

@ApiMethod(name = "deleteDataVersion")
public Result deleteDataVersion(@Named("id") String id) {

    if (id != null && !id.equals("")) {

        // DataVersion doesn't have a parent.
        Key<DataVersion> key = Key.create(null, DataVersion.class, id);

        ofy().delete().key(key).now();
        return new Result(Result.STATUS_SUCCESS);
    } else
        return new Result(Result.STATUS_FAILED);
}
Run Code Online (Sandbox Code Playgroud)

但该实体永远不会被删除.这是我的实体的代码: …

google-app-engine objectify google-cloud-endpoints

3
推荐指数
1
解决办法
993
查看次数