Я использую аннотации JPA (реализация спящего режима), и я хочу изменить идентификатор объекта, объединив его. Существует ли какая-либо аннотация или решение, чтобы избежать дублирования, а затем удалить объект?Обновление идентификатора экземпляра в JPA
0
A
ответ
2
Это не возможно с помощью JPA, по уважительным причинам:
- у вас есть объект удаляется из контекста настойчивости и вы хотите приклеить ее, как, возможно, это может быть связанно с исходной строкой она была модифицирована если вы удалите единственный способ сделать соединение? Итак, давайте предположим, что мы храним исходный идентификатор и пытаемся перейти оттуда, но теперь, поскольку id модифицируется, существует 0 гарантия того, что он не был изменен каким-либо другим процессом, пока он был отсоединен, что делает наш сохраненный исходный идентификатор бесполезным и вызывая полный хаос.
Вы можете сделать обходные пути, хотя:
- использовать нативный запрос для изменения полосы землеотвода
- не использовать этот столбец в качестве первичного ключа, но вместо того, чтобы создать новый с сгенерированными последовательностями
- дублировать, то удалить объект, как вы сказали, также полностью действителен и безопасен, так как он находится в одной и той же транзакции
0
Вы можете изменить идентификатор объекта в jpa с использованием JPQL, например, в этом примере:
public void updateUsername(User userToUpdate,String newUserName) {
EntityManager manager=ConnectionDao.getConnecting();
User user=find(userToUpdate.getUsername());
manager.getTransaction().begin();
manager.createQuery("update User u set u.username=\'"+newUserName+"\'").executeUpdate();
manager.getTransaction().commit();
return;
}
Смежные вопросы
- 1. идентификатора экземпляра ManagerEntity был изменен
- 2. Получить метаданные экземпляра ec2 с идентификатора экземпляра
- 3. Наследование JPA/Hibernate без идентификатора
- 4. jpa сопоставленный суперкласс без идентификатора
- 5. Получение идентификатора экземпляра CTreeCtrl снова
- 6. Перенаправление/обновление идентификатора фрагмента
- 7. Получение идентификатора экземпляра для nsstring
- 8. Обновление модели сущности JPA
- 9. JPA Заявление Массовое обновление
- 10. Обновление фонового кеша JPA
- 11. Динамическое обновление с JPA
- 12. Обновление от вставленного идентификатора
- 13. JPA Обновление двунаправленного ассоциации
- 14. JPA обновление родительский ребенок
- 15. JPA Обновление с Присоединиться
- 16. Обновление объекта через JPA
- 17. Как получить экземпляр экземпляра ec2 из идентификатора экземпляра в ansible
- 18. Обновление FROM query JPA
- 19. Обновление переменной экземпляра в BPS
- 20. Обновление до/после загрузки в объекте JPA
- 21. Получение идентификатора имени экземпляра в python
- 22. Обновление formset экземпляра через
- 23. Обновление атрибутов экземпляра класса
- 24. eXist-db Обновление экземпляра экземпляра XForms POST
- 25. Обновление идентификатора с некоторым полем идентификатора в другой таблице
- 26. Обновление идентификатора приложения для iCloud
- 27. позиция Обновление на основе идентификатора
- 28. Обновление идентификатора на основе представлений
- 29. Rails ActiveRecord - Обновление полиморфного идентификатора
- 30. CloudWatch EC2 - Поиск идентификатора экземпляра сервера EC2 и имени экземпляра
Вы не можете изменить идентификатор объекта после его сохранения –