簡體   English   中英

如何在 Spring 中僅實現 CrudRepository 的特定方法?

[英]How to implement only specific method of CrudRepository in Spring?

我正在使用 spring-data-jpa 的CrudRepository來定義一個實體的接口,然后擁有所有標准的 crud 方法而無需顯式提供實現,例如:

public interface UserRepo extends CrudRepository<User, Long> {

}

雖然現在我只想覆蓋自定義實現中的save()方法。 我怎么能做到這一點? 因為,如果我實現接口UserRepo ,我就必須實現從接口CrudRepository繼承的所有其他 CRUD 方法。

我不能編寫自己的實現,它具有所有 CRUD 方法但只覆蓋一個而不必自己實現所有其他方法嗎?

你可以做一些非常相似的事情,我相信這會達到你想要的結果。

必要步驟:

  1. UserRepo現在將擴展 2 個接口:

    公共接口 UserRepo 擴展 CrudRepository<User, Long>, UserCustomMethods{

    }

  2. 創建一個名為UserCustomMethods的新接口(您可以在此處和步驟 1 中選擇名稱並進行更改)

    公共接口 UserCustomMethods{ public void mySave(User... users);

    }

  3. 創建一個名為新類UserRepoImpl (這里的名稱事情,它應該是RepositoryName默認地將Impl,因為如果你把它叫做別的東西,你就需要相應地調整了Java / XML配置)。 此類應僅實現您創建的CUSTOM接口。

提示:您可以在此類中為您的查詢注入 entitymanager

public class UserRepoImpl implements UserRepo {
    
    //This is my tip, but not a must...
    @PersistenceContext
    private EntityManager em;

    public void mySave(User... users){
        //do what you need here
    }
}
  1. 在您需要的任何地方注入UserRepo ,並享受 CRUD 和您的自定義方法:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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