0
Я использую datanucleus и jdo в проекте GWT. Как я могу получить сгенерированный первичный ключ после добавления элемента в базу данных с makePersistent()Datanucleus JDO Восстановить только что сгенерированный первичный ключ
Edit Мы используем аннотации, вот первичный ключ:
@PrimaryKey
@Column(name = "id_bla", allowsNull = "false")
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY, extensions = { @Extension(vendorName = "datanucleus", key = "strategy-when-notnull", value = "false") })
private Long idBla;
Я не тот, кто сделал картографирование, и я пока не получаю все это.
Спасибо за ответ. Это поведение, которое я ожидал, но после моего «makePersistent (obj)» мой obj.getId() по-прежнему равен нулю ... Пока идентификатор в БД правильно сгенерирован и все остальные данные сохраняются нормально. – Jla
Вы используете аннотации или XML? Если идентификатор появляется в базе данных, то аннотации (например, identityType, valueStrategy и т. Д.) Являются предположительно правильными. Работает ли getObjectById()? Проверьте наличие опечаток в getId()! –
Я использую аннотации (я редактировал свой пост). Это БД, который генерирует идентификатор, чтобы я был причиной, по которой я не могу получить его сразу после makePersitent. Я просто попытался getObjectById() с ID из базы данных, но я получаю исключение «Нет такой строки базы данных». Когда я запрашиваю все результаты, хотя идентификаторы извлекаются должным образом. – Jla