gpt4 book ai didi

java - Objectify:如何在多种类型中拥有唯一的 ID?

转载 作者:行者123 更新时间:2023-12-01 08:52:15 25 4
gpt4 key购买 nike

我有一些类型有一个公共(public)字段(电子邮件 ID),我将其用作 @Id。这些类型扩展自具有电子邮件 ID 字段的常见类型用户。如下所示:

@Entity
class User{
@Id
String emailID;
}

@Entity
@Subclass(index = true)
class UserType1 extends User{

String otherField;
}


@Entity
@Subclass(index = true)
class UserType2 extends User{

String otherField;
}

现在,我希望每次插入用户子类型时,电子邮件 ID 在数据存储中的所有这些子类型对象中都应保持唯一。我通过插入具有相同 EmailID 的每个子类型来测试上述类型的端点,结果成功 - Objectify 不应该允许具有相同 ID 的子类型的持久性。根据我的理解,最终的唯一性是由键确保的,但我不能通过 Id 跨子类型确保唯一性,特别是当 ID 位于基类中时?有什么办法可以做到吗?

编辑:虽然,这不是我正在寻找的解决方案,但我已经通过使用 {EmailID, Key_Subtype} 创建一个新的实体类型来处理这种情况,该类型可以确保唯一性。我只是检查此实体中是否存在现有 emailID,然后使用 key 通过另一个查询来检索对象。

如果有人提出更好的解决方案,我将不胜感激。

最佳答案

UUID 就是您要查找的内容。它是为每个实体生成的。类型并不重要。

https://dzone.com/articles/hibernate-and-uuid-identifiers

关于java - Objectify:如何在多种类型中拥有唯一的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314623/

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