Как положить «ноль» в столбец с помощью HQL? - PullRequest
7 голосов
/ 11 августа 2009

Как создать допустимую строку HQL, эквивалентную

ОБНОВЛЕНИЕ таблицы SET поле = ноль ГДЕ ....

Ответы [ 2 ]

2 голосов
/ 11 августа 2009

Вы имеете в виду массовое обновление HQL? Попробуйте это

UPDATE myEntity e SET e.myProperty = null WHERE ...

Вы также можете использовать параметризованную версию выше

UPDATE myEntity e SET e.myProperty = :param WHERE ...

В вашем коде:

int updatedEntities = session.createQuery(updateQueryHQL)
  .setString( "param", myValue ) // or .setString( "param", null )
  .executeUpdate();

Подробнее см. документация .

Если вы не выполняете массовых обновлений, просто установите для свойства значение NULL и сохраните сущность в обычном режиме.

0 голосов
/ 12 августа 2009

Почему ваше заявление об обновлении должно быть сделано на HQL? У вас есть эта таблица сопоставлена ​​с сущностью в системе? Если вы это сделаете, то вы можете просто установить для свойства, сопоставленного с этим столбцом, значение null и выполнить сохранение для этого объекта. например.

myObject.setMyProperty (нуль); . GetSessionFactory () getCurrentSession (), за исключением (MyObject).

Это должно сработать для вас, но вам нужно сопоставить сущность с рассматриваемой таблицей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...