您好,我目前正在尝试执行可通过存储库层中的参数输入的自定义查询。
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);
}
我应该怎么做?
答案 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
”一章中进行了介绍。