SQL:обновление Hibernate с таким же колонке заявления
UPDATE table SET column = 'new_value' WHERE column = 'old_value'
(то же имя столбца)
Как это сделать в Hibernate?
SQL:обновление Hibernate с таким же колонке заявления
UPDATE table SET column = 'new_value' WHERE column = 'old_value'
(то же имя столбца)
Как это сделать в Hibernate?
Вы можете использовать EntityManager.merge(), который может привести к исключению NonUniqueObjectException, если имеется несколько результатов с одинаковым именем столбца.
Лучше использовать NamedQuery для NativeNamedQuery для достижения этого.
Я понимаю, что вы захотите выполнить пакетные обновления.
Я предлагаю вам обратиться к этому link
Вы можете использовать приведенный ниже код для того, чтобы это сделать.
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlUpdate = "update Customer c set c.name = :newName where c.name = :oldName";
int updatedEntities = s.createQuery(hqlUpdate)
.setString("newName", newName)
.setString("oldName", oldName)
.executeUpdate();
tx.commit();
session.close();
Обратите внимание на нижеследующую точку, указанную в ссылке.
Соединения, неявные или явные, запрещены в объемном запросе HQL. Вы можете использовать подзапросы в предложении WHERE, и сами подзапросы могут содержать объединения.