aop.AopInvocationException:来自的空返回值

JSO*_*JSO 8 spring-mvc

这是存储库:

@Query(value = "select u.balance from User u where u.name=:name")
float toGetBalance(@Param("name") String name);
Run Code Online (Sandbox Code Playgroud)

这是DAO界面:

boolean checkBalance(String userName, float totalPrice);
Run Code Online (Sandbox Code Playgroud)

这是服务

@Transactional(readOnly = true)
@Override
public boolean checkBalance(String userName, float totalPrice) {

    if (userRepository.toGetBalance(userName) < totalPrice) {

        return false;

    } else {

        return true;

    }

}
Run Code Online (Sandbox Code Playgroud)

这是错误信息:

org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public abstract float com.repository.UserRepository.toGetBalance(java.lang.String)
Run Code Online (Sandbox Code Playgroud)

余额类型是浮动的!

怎么了?

Ent*_*tea 6

将存储库的签名更改为

@Query(value = "select u.balance from User u where u.name=:name")
Float toGetBalance(@Param("name") String name);
Run Code Online (Sandbox Code Playgroud)

null如果数据库中没有给定的用户,它将简单地返回name