如何从数据库中获取所有对象
@RequestMapping(value="/test", method=RequestMethod.GET)
public ModelAndView recoverPass(@RequestParam("num") int num) {
ModelAndView mv = new ModelAndView("test");
mv.addObject("lists",appRepo.findAll(num));
return mv;
}
我在浏览器中输入了http://localhost:8080/test?num=40但没有结果。 错误是:CrudRepository中的findall无法应用于(int)
答案 0 :(得分:1)
Spring中的CrudRepository没有一个名为findAll()的方法,它接受一个整数参数。不带参数的findAll()返回所有对象,而不仅仅是特定整数id的给定对象。
你需要找出你想要的东西。如果你想要所有对象,那么调用不带参数的findAll()并删除int参数。
如果您只想查找具有给定整数id的特定对象,请改用findOne(num)。
答案 1 :(得分:0)
我想你想解决分页问题。在这种情况下,使用PagingAndSortingRepository或JpaRepository而不是简单的CrudRepository,因为在这种情况下有一个findAll(Pageable pageable)
方法可以完全按照你想要的那样。
阅读:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.core-concepts
答案 2 :(得分:0)
Spring中的CrudRepository只有findAll()
方法返回表中的所有项目。
如果你想获得所有项目,你应该使用
appRepo.findAll();
或者您应该声明具有所需条件的方法:
@Repository
public interface AppRepo extends CrudRepository<Foo, Long> {
List<Foo> findBySomeValue(String someValue);
}
并在您的逻辑appRepo.findBySomeValue('bar');
答案 3 :(得分:0)
我认为您正在尝试使用id = 40的用户。如果您使用spring数据jpa和spring boot,则可以创建一个名为preresponse.Where(x =>
x.hotels.Any(h =>
h.Travellers.Any(t =>
t.FullName.ToLower().Contains(request.SearchText) ||
t.FirstName.ToLower().Contains(request.SearchText) ||
t.LastName.ToLower().Contains(request.SearchText) ||
t.EmailAddress.ToLower().Contains(request.SearchText)))
||
x.cars.Any(c =>
c.Travellers.Any(t =>
t.FullName.ToLower().Contains(request.SearchText) ||
t.FirstName.ToLower().Contains(request.SearchText) ||
t.LastName.ToLower().Contains(request.SearchText) ||
t.EmailAddress.ToLower().Contains(request.SearchText)))
||
x.tours.Any(s =>
s.Travellers.Any(t =>
t.FullName.ToLower().Contains(request.SearchText) ||
t.FirstName.ToLower().Contains(request.SearchText) ||
t.LastName.ToLower().Contains(request.SearchText) ||
t.EmailAddress.ToLower().Contains(request.SearchText)))
||
x.flights.Any(f =>
f.Travellers.Any(t =>
t.FullName.ToLower().Contains(request.SearchText) ||
t.FirstName.ToLower().Contains(request.SearchText) ||
t.LastName.ToLower().Contains(request.SearchText) ||
t.EmailAddress.ToLower().Contains(request.SearchText)))
).ToList();
的存储库,并创建一个方法findById()以获取特定id的用户。
userRepository
然后,您可以在服务中自动装配public interface UserRepository extends JpaRepository<User, Serializable>{
User findById(Long id);
}
并调用findById()方法。您也可以使用相同的UserRepository
对象通过调用findAll()方法获取所有用户列表。