3 回答
TA贡献1784条经验 获得超7个赞
您不需要使用override默认findAll()方法JpaRepository。只需将存储库界面保持为空即可。
@Repository
public interface AppRepository extends JpaRepository<AVSApplication, String>{
}
TA贡献1872条经验 获得超3个赞
正如您所显示的,您的代码中似乎没有错误,它没有找到带有该键的任何内容,findById("your_key")并且您没有该键的值。你可以做的是检查你是否有该键的值,如下所示并采取相应的行动:
Optional<AVSApplication> optionalApp = mAppRepo.findById("3A0");
if (optionalApp.isPresent())
{
AVSApplication yourObject= optionalApp.get();
}
else
{
//throw new exceptions or do whatever you want
}
findAll()此外,从存储库中清除您的覆盖方法
TA贡献1811条经验 获得超4个赞
我是这么想的。这不是一个错误。事实上,这是一个有效的输出。您正在尝试查询(sysout)应用程序代码 - “3A0”,但该代码不存在。我尝试在本地复制相同的内容,并且可以通过查询不存在的应用程序代码来完成此操作,如下所示:
输入无效:
System.out.println(mAppRepo.findAll());
System.out.println(mAppRepo.findById("appcode"));
输出:
[com.example.demo.entity.AVSApplication@1640ad08]
Optional.empty
有效输入:
System.out.println(mAppRepo.findAll());
System.out.println(mAppRepo.findById("abc"));
输出:
[com.example.demo.entity.AVSApplication@335bed5b]
Optional[com.example.demo.entity.AVSApplication@655967a5]
因此,请确保您正在查询现有且有效的条件。查找拼写错误并重试。
添加回答
举报