我在 Google App Engine 上,使用 Objectify。考虑以下简化设置:
@Entity
public class UserGroup
{
@Id
private String identifier;
}
@Entity
public class User
{
@Id
private String username;
private String password;
@Parent
Ref<UserGroup> usergroup;
}
现在我假设如果我有两个用户组(我们称它们为 A 和 B),我最多可以拥有三个用户名为“admin”的用户实体:一个以用户组 A 作为父级,一个以用户组 B 作为父级,一个没有用户组作为父级。
然而,事实并非如此。如果我在 A 组中创建管理员,然后在没有组的情况下创建管理员,然后在 B 组中创建管理员,则只有一个:B 中的一个,它覆盖了其他两个。
在我看来,这似乎是不一致的。如果不将 B 指定为父实体,并且只给出“admin”作为名称,我将无法在 B 中找到那个,因为这意味着在根目录中查找他。但是,如果我在任何地方创建一个具有该名称的用户,它会覆盖具有相同名称的用户,而不管他在对象层次结构中的位置如何。
我的问题是:为什么会这样?