【发布时间】:2016-06-08 00:32:06
【问题描述】:
当我尝试在下面实现我的query 时出现以下错误:
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token
我的查询位于扩展 CrudRepository 的 Spring 数据 PersonRepository 中
查询:
@Modifying
@Transactional
@Query("DELETE (entity) FROM Person entity WHERE entity.id = :id")
List<Person> deleteFromPersonWithId(@Param("id") String id);
我的语法有什么错误?
【问题讨论】:
-
应该是 entity.id 代替 where 子句中的 person.id
-
抱歉打错了,我有 entity.id
-
好的,你不需要括号中的实体来删除
-
这样写
DELETE FROM Person WHERE id = :id。但最好使用entityManager.remove(entity)语法,因为这也会删除关联的实例 -
sping中如何创建实体管理器?
标签: java spring list jpa transactional