2011-09-24 2 views
0

사용자 개체가 지속되기 전에 호출 된 @PrePersist 메서드를 작성했습니다. 이 방법의 목적은 사용자를 위해 일종의 예약을하는 것이므로 아무도 자신의 이메일 주소를 가져갈 수 없습니다. 따라서 사용자가 계속 지속될 때 "사용자 #xyz의 EmailReservation 생성"이라고 말합니다.인스턴스화되었지만 저장되지 않은 개체의 액세스 키 [objectify] [@prepersist]

이전에 사용자가 지속되지 않은 경우 #xyz을 얻는 데 문제가 있습니다. ID가 null이지만 내 사용자를 나타내는 Entity가 이미 작성 되었기 때문에 DatastoreService.allocateIds를 사용할 수 없습니다. 해당 Entity에 대한 액세스 권한이 있지만 getKey()는 null ID가있는 키를 반환합니다. ID가 무엇인지 결정하지 않았습니다.

그래서, 다음 중 하나를 바라고하는 것은 가능하다 : 아이디 밖으로

  1. 그림 엔터티는 그것의 전에 이미 특정 ID를 생성 한 것 엔터티를 부여
  2. 지속 때있을 것이다 지속되었다.

아이디어가 있으십니까?

답변

1

엔티티가 지속될 때 어떤 ID를 가질지 알 수있는 방법이 없습니다. 이를 수행하는 유일한 방법은 allocateIds를 사용하는 것입니다.

사용자 개체를 만들기 전에 ID를 생성하거나 전달하거나 엔터티가 데이터 저장소에 기록 된 후에 작업을 수행해야합니다.

관련 문제