Hibernate DataException: не удалось обновить - PullRequest
0 голосов
/ 23 ноября 2010

Я получил исключение из живого развертывания веб-приложения (JBoss, Turbine, Hibernate). Я не могу воспроизвести исключение, поэтому я не могу исправить ошибку. Вот исключение, которое я получаю:

org.hibernate.exception.DataException: could not update: [com.myproject.project.mypackage.objects.MyObject#1190]
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2425)
        at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
        at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
        at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
        at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)

Интересно то, что я получаю эту не удалось обновить ошибка при выполнении следующего hql:

select sum(entity.totalPrice) from Entity entity where entity.parent.id = :parentId and deleted is null

Несколько сущностей принадлежат одному родителю. Этот hql является частью большего процесса обновления. Мне нужна сумма totalPrices, чтобы обновить с ним другую сущность. Возможно ли, что не удалось обновить относится к процессу обновления? Я не думаю, что это так, потому что ошибка происходит до выполнения обновления. Точнее, исключение возникает при вызове метода list () для объекта Query, который содержит hql.

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

1 Ответ

0 голосов
/ 23 ноября 2010

Я думаю, что имя первого атрибута должно быть entity.parent_id и entity.deleted вместо простого удаления. окончательный запрос должен выглядеть примерно так ...

select sum(entity.totalPrice) from Entity entity where entity.parent_id = :parentId and entity.deleted is null

убедитесь, что имя атрибута parent_id указано правильно.

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