Я разрабатываю веб-приложение J2EE 6, используя базу данных MySql 5.02.Я пытаюсь создать хэш-дайджест идентификатора, каждый раз, когда я создаю новую сущность.Это настроено на столбец в Таблице.
Но я застрял на чем-то, что, по-видимому, легко, и в соответствии с тем, что я нашел, прибегая к помощи, возможно.По сути, я хочу получить идентификатор (первичный ключ) вновь сохраненного объекта, но что бы я ни пытался, он возвращает ноль.
Выполнены следующие шаги:
- Создание экземпляра объекта ->
userCard = new Users();
- Установка соответствующих полей с некоторыми значениями.
- Вызов
persist()
метода EntityManager
.
Прочитав некоторые форумы, я понял, что мне нужно либо позвонить flush()
после persist()
, либо использовать merge()
и использоватьвозвращаемая сущность для получения идентификатора.
public void createAndFlush(Users users) {
em.persist(users);
em.flush();
}
public Integer edit(Users users) {
return ((Users)em.merge(users)).getIdvcards();
}
Ни одна из них (среди некоторых других комбинаций) не работает, ну, сущность успешно сохраняется, но поле идентификатора возвращает ноль.
Этиявляются соответствующими аннотациями столбца id, который я хочу получить:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idvcards")
private Integer idvcards;
И, очевидно, для idvcards столбца моей таблицы установлено значение Автоинкремент и Первичный ключ.
Может быть, яМне нужно уточнить мои концепции управления постоянством, но я был бы признателен, если бы мне удалось получить подсказку для решения этой основной проблемы.