我有一个@Entity Video
一对多关系,List<Tag> tags
作为其中一个字段。我使用以下@Repository
使用 Spring Data 来获取最受欢迎的代码:
@Repository
public interface TagRepository extends CrudRepository<Tag, Integer>{
@Query("SELECT t FROM Tag t WHERE (SELECT SUM(v.views) FROM Video v WHERE t MEMBER OF v.tags) > 0")
public List<Tag> findMostViewedTags(int maxTags);
}
查询被 Spring 处理并认为有效,我在本地测试了生成的 SQL vs我的数据库,它返回了2 标签。但是在我的代码中,当我调用方法findMostViewedTags(100)时,我收到值 Null 。
查询查找策略是默认的&#34; CREATE_IF_NOT_FOUND&#34;。
Null
而不是List<Tag>
的size()2?答案 0 :(得分:13)
List<Object>
是定义的接口中方法的返回值,则该方法永远不应返回Null
。答案 1 :(得分:3)
我遇到过类似的问题。原因是我使用的是Mockito并且没有使用when()
正确地模拟数据。