我编写了一个 @PrePersist 方法,该方法在我的 User 对象被持久化之前调用。该方法的目的是为用户进行一种预订,因此其他人无法获取他的电子邮件地址。因此,当用户即将被持久化时,我会说,“为用户 #xyz 创建一个 EmailReservation。”
我的麻烦是当用户之前没有被持久化时获得#xyz。id 为空,但我不能使用 DatastoreService.allocateIds,因为已经创建了代表我的用户的实体。我确实可以访问该实体,但 getKey() 返回一个带有空 id 的键 - 它还没有决定它的 id 是什么。
所以,我希望以下之一是可能的:
- 找出实体在持久化时将具有的 id
- 在持久化之前为已创建的实体提供特定的 id。
有任何想法吗?