2016-11-10 2 views

ответ

0

Вы можете использовать EntityManager.merge(), который может привести к исключению NonUniqueObjectException, если имеется несколько результатов с одинаковым именем столбца.

Лучше использовать NamedQuery для NativeNamedQuery для достижения этого.

0

Я понимаю, что вы захотите выполнить пакетные обновления.

Я предлагаю вам обратиться к этому 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, и сами подзапросы могут содержать объединения.

Смежные вопросы