簡體   English   中英

Spring 數據 JPA 刪除查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM