spring data mongodb 使用 Repository/mongoTemplate

spring data mongodb 有2種使用方式:

第一種是Repository,能夠直接繼承MongoRepository等接口,使用CRUD等方法和JPA的方法而不用寫實現

第二種就是使用mongoTemplate,需要自己寫實現類,增刪改查可以自己控制

我們項目中可以同時使用兩種方式:


準備:

實體類Role:

@Document(collection = "role")
public class Role extends Contact {
    @Id
    private String id;

    private String name;

    private int age;

1.需要使用mongoTemplate的接口:

public interface RoleRepositoryEnhance {
    saveEntity(Role role){
}
2.實現類(這個類名是固定的)
public class RoleRepositoryImpl implements RoleRepositoryEnhance {
    @Autowired
    MongoTemplate mongoTemplate;
    @Override
    public void saveEntity(Role role){
        mongoTemplate.save(role);
    }

}

3.Repository

@Repository
public interface RoleRepository extends MongoRepository<Role,String>,RoleRepositoryEnhance {
}

此時就可以注入RoleRepository,然後使用Repository的JPA方法 和 我們自定義使用mongoTemplate的方法了

原理:

spring 注入這個接口的實現類的時候,遇到RoleRepositoryEnhance 這個接口,會自動去尋找RoleRepositoryImpl這個實現類,也就是類名是RoleRepository+Impl 注入到實現類裏



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章