Я думаю, вам нужно будет отправить образец кода, прежде чем мы сможем рассказать вам, что вы делаете неправильно. У меня есть Entity с типом id Long, и id заполняется после того, как я вызываю makePersistent()
. Вот то, что код выглядит следующим образом:
GameEntity game = new GameEntity();
log.warning("before makePersistent id is " + game.getId());
pm.makePersistent(game);
log.warning("after makePersistent id is " + game.getId());
Вот отрывок из класса GameEntity:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class GameEntity {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
И выход показывает, что можно было ожидать:
WARNING 6428 - before makePersistent id is null
WARNING 6444 - after makePersistent id is 6
UPDATE: Мне пришло в голову с опозданием, что вам может понадобиться фактический объект Key. Вы можете создать это самостоятельно, если у вас есть идентификатор:
public Key getKey() {
return KeyFactory.createKey(GameEntity.class.getSimpleName(), id);
}
Ну прямо сейчас я работаю в JDO. –