[英]Spring data JPA delete query
我想看看这是否是使用 spring JPA 编写删除查询的正确方法。 我有一张表,主键为id
,外键为study_id
。 我想根据study_id
删除一行。 我不能只在 JPA 中使用delete
方法,因为study_id
不是唯一键。 所以我写了新方法:
@Modifying
@Transactional
@Query(value = "DELETE FROM MY_TABLE WHERE STUDY_ID = :studyId", nativeQuery = true)
int deleteByStudyId(@Param("studyId") long studyId);
我从https://javadeveloperzone.com/spring-boot/spring-data-jpa-delete-query/#3_Delete_Operation_using_Custom_Query找到了这个。 但是,我不确定为什么需要 @Transactional 和nativeQuery
才能正确处理它。 没有它们,我会得到错误。 我也想知道这是否是从表中删除的正确方法。 这可行,但我对 spring JPA 很陌生。
我不确定为什么需要 @Transactional 和 nativeQuery 才能正确处理它。
没有 nativeQuery 意味着您使用的是 JPQL,那么您应该在 Entity 中使用实体名称和列名称而不是数据库表名称或列
我也想知道这是否是从表中删除的正确方法。
我认为更简单的方法是使用 JPA 方法命名查询这种方式
Long deleteByStudyId(long studyId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.