【发布时间】:2016-02-14 06:02:00
【问题描述】:
我在 Spring JPA 中使用 Spring Data rest。我有一个 Spring JPA 派生的删除查询,它应该删除项目列表,但是当我执行它并注意到控制台时,我发现它正在执行选择查询,而不是我遇到过的非常奇怪的情况。
@RepositoryRestResource(collectionResourceRel="revision", path="revision")
interface RevisionRepository extends JpaRepository<Revision, Long> {
List<Revision> deleteByContentId(long contentId)
}
我什至尝试使用 Long 而不是 List<Revision> 不起作用,也尝试过 removeByContentId 它也不起作用,并继续执行选择查询而不是删除查询。
当我运行此方法时,这就是我在控制台上得到的结果
Hibernate: select revision0_.id as id1_2_, revision0_.body as body2_2_, revision0_.content_id as content_3_2_, revision0_.content_type as content_4_2_, revision0_.date_created as date_cre5_2_, revision0_.file_name as file_nam6_2_, revision0_.folder_id as folder_i7_2_, revision0_.force_ssl as force_ss8_2_, revision0_.is_active as is_activ9_2_, revision0_.lookup as lookup10_2_, revision0_.meta_description as meta_de11_2_, revision0_.meta_keywords as meta_ke12_2_, revision0_.meta_title as meta_ti13_2_, revision0_.nav_item as nav_ite14_2_, revision0_.nav_order as nav_ord15_2_, revision0_.regions_objects as regions16_2_, revision0_.summary as summary17_2_, revision0_.title as title18_2_, revision0_.updated_by as updated19_2_, revision0_.user_id as user_id20_2_ from revisions revision0_ where revision0_.content_id=?
有没有人知道为什么它的行为很奇怪?
【问题讨论】:
-
它真的“删除”了吗?我的意思是,这个方法真的有效吗?
-
不,它不起作用。它不会删除任何内容。
-
您使用的是哪个版本的 JPA?
-
请给我们看看 deleteByContentId 方法的代码好吗?
-
@Bonifacio - 我正在使用 JPA 派生查询,没有代码,我只需要使用 deleteByFieldName 就可以了。
标签: spring hibernate spring-mvc jpa spring-data-rest