为什么我在尝试使用参数化泛型获取查询时得到空列表

我正在尝试获取类型列表,如下面的代码所示 -:


    @Autowired

    MongoTemplate mongotemplate;


    @Override

    public <T> List<T> getDetails(Query query, Class<T> queryClass) {


        List<T>  list= mongotemplate.find(query, queryClass);


    return list;

    }


}

该存储库从服务中调用为-:


return messageSummaryImpl.getDetails(query, MessageSummaryDoc.class);

这个函数的返回类型是 List<MessageSummaryDoc>


由于这是一个空列表,当我不使用通用函数或直接从服务本身调用存储库函数时,此代码工作正常 (mongorepository.find(query,Classexample.class)) 请告诉我我做错了什么。


PS-:请不要问我为什么不直接调用存储库(因为这是项目要求)。


慕运维8079593
浏览 166回答 1
1回答

波斯汪

要么您没有与查询匹配的整体,要么您的 mongotemplate 对查询进行了一些奇特的处理。你说如果你(mongorepository.find(query,Classexample.class))得到了一些数据,但你没有mongorepository在给定的代码中使用,但这mongotemplate是“错误的概念证明”泛型无论如何都不会影响这个问题——无论如何它们都会在运行时消失。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java