如何通过参数输入进行自定义查询

时间:2019-06-19 20:39:24

标签: java mongodb

您好,我目前正在尝试执行可通过存储库层中的参数输入的自定义查询。

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;



@Repository
 public interface LinuxServerTaniumReportRepository extends MongoRepository<LinuxServerTaniumReport, String> {

@Query(:query)
public List<LinuxServerTaniumReport> performQuery(String query);
}

我应该怎么做?

1 个答案:

答案 0 :(得分:0)

您不能通过注释来执行此操作,但是可以通过提供自定义存储库来执行此操作。围绕这句话:

public interface MyCustomExecuteMethod<T> extends Repository {

    public List<T> performQuery(String query);

} 

public class MyCustomExecuteMethodProvider<T> implements MyCustomExecuteMethod {
   @Autowire
   EntityManager em;

   public List<T> performQuery(String query) {
      // put your logic here where you create the query via the entity manager 
   }

}


Repository
 public interface LinuxServerTaniumReportRepository extends MongoRepository<LinuxServerTaniumReport, String> ,MyCustomExecuteMethod<LinuxServerTaniumReport>{

}

现在,您唯一需要获取此方法的方法就是使用MyCustomExecuteMethod接口扩展存储库。 这项技术称为Spring Data Composable Repository,在Spring数据文档的“ Custome Implementation of Spring Data Repository https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations

”一章中进行了介绍。