java – Spring JPA Query返回Null而不是List

前端之家收集整理的这篇文章主要介绍了java – Spring JPA Query返回Null而不是List前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个@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?

解决方法

>如果未找到结果,则正常行为确实返回空列表.如果List< Object>是定义的接口中方法的返回值,该方法永远不应返回Null. >问题是该方法的参数是在查询中的任何位置使用的.出于某种原因,Spring决定在这种情况下返回Null.解决方案:删除未使用的参数或使用Query中的参数.
原文链接:https://www.f2er.com/java/129489.html

猜你在找的Java相关文章