Я новичок в Hibernate.Hibernate HQL casting java.lang.ClassCastException: java.lang.Integer нельзя отнести к java.lang.Long
При попытке обратного булево
@Query(value = "update ToDo t set t.done= (abs(t.done -1)) where t.id=:id") public void toogleDone(@Param("id") long id);
я есть это исключение:
[2014-01-20 16:20:38] java.lang.ClassCastException:
java.lang.Integer не может быть приведен к java.lang.Long в орг. hibernate.type.descriptor.java.LongTypeDescriptor.unwrap (LongTypeDescriptor.java:36) в org.hibernate.type.descriptor.sql.BigIntTypeDescriptor $ 1.doBind (BigIntTypeDescriptor.java:57) ...
когда я попробовать этот запрос:
`@Query (значение = "обновление ToDo т множество t.done = (НЕ t.done), где t.id =: идентификатор")
public void toogleDone(@Param("id") long id);`
я есть исключение:
[2014-01-20 16:28:58] неожиданный AST узел: не [обновление org.teamdev.todo.model.domain.ToDo т множество t.done = (NOT t.done), где t.id =: id]
Есть ли у вас какие-либо идеи, чтобы инвертировать boolean в HQL?
Try: 'установить t.done = (t.done == ложь)' – acdcjunior
я попробовал это тоже я имел исключение ' неожиданный токен = 'near false – Aventes
Как насчет одного' = 'в одиночку? 'set t.done = (t.done = false)'? Или 'set t.done = (t.done <1)' или 'set t.done = ((t.done + 0) <1)'? – acdcjunior