gpt4 book ai didi

java - 使用 Objectify 的 DataStore - 加载实体/键而不指定父级

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:48 25 4
gpt4 key购买 nike

在一个事务中,我需要加载多个实体(十分之一),并且这些实体被分配给一个父实体,因此它们被视为一个实体组(否则我们无法在单个事务中加载这些实体),这很好用,但是每次我们需要查询这些实体时,父实体都会被加载

ofy().load().type(clazz).parent(parent).ids(keys);

如果我们想在没有加载父实体的情况下加载实体,那么这应该可以工作并加载实体,但事实并非如此

ofy().load().type(clazz).ids(keys);

其背后的原因是,如果两个或多个线程确实调用加载相同/不同的条目(但相同的父项),则会导致父实体负载过多“java.util.ConcurrentModificationException:这些数据存储实体上的争用过多。请重试。”

请指教

最佳答案

您的ofy().load().type(clazz).ids(keys)似乎无法工作的原因是您没有指定父键 - 这相当于查找实体的键(即没有父级的实体),这显然会产生不同的结果。

父键(实际上是整个祖先)嵌入子实体键中,请参阅 Ancestor paths .

因此不幸的是,您必须指定父级 - 父级上的“负载”(实际上是整个实体组上的负载,尤其是在写入操作时)是为了在同一实体组中工作的优势而付出的代价。

关于java - 使用 Objectify 的 DataStore - 加载实体/键而不指定父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858742/

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