gpt4 book ai didi

java - 具有事务的 GAE 高复制数据存储 (HRD)

转载 作者:行者123 更新时间:2023-11-30 11:47:22 25 4
gpt4 key购买 nike

我正在使用 HRD,因为我想使用实体组对单个事务中的多个实体进行更改。

了解非事务性(非祖先)查询可能会看到先前提交的事务的全部、部分或没有结果。

我现在面临的问题是:提交一个向数据库添加新记录的事务后

  Transaction tx = pm.currentTransaction();
tx.begin();
pm.makePersistent(object);
tx.commit();
  • 按照提交的记录查询,有时返回结果,有时返回null

      Query q = pm.newQuery(queryStatement);        
    CompanyProfile result = (CompanyProfile) q.execute();

p/s: 当关闭HRD 时,它工作得很好。

任何解决方法?

谢谢RgdsSJ

最佳答案

没有办法绕过它:HRD 总是最终一致的:http://code.google.com/appengine/docs/python/datastore/queries.html#Setting_the_Read_Policy_and_Datastore_Call_Deadline

一种解决方法是使用 get 而不是 query。 Get/put/delete 在 HRD 中是强一致的,而 query 是最终一致的:http://code.google.com/appengine/docs/java/datastore/hr/

如果这是一个用户 session 中保存后立即查询的场景,您可以手动查询数据并将保存的实体添加到列表中。

关于java - 具有事务的 GAE 高复制数据存储 (HRD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9345946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com