我有一个@Entity视频与List< Tag>有一对多的关系.标签作为其中一个字段.我使用以下的@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.
查询查找策略是默认的“CREATE_IF_NOT_FOUND”.
>如果找不到结果,该方法是否应返回空列表或Null?我希望的行为是收到一个空列表.
>为什么方法调用返回Null而不是List< Tag>尺寸()2?