Spring Framework: Viết câu lệnh SQL query để truy xuất dữ liệu

Em chào các anh ạ,
Hiện nay em đang tập làm Spring và em đang làm theo hướng dẫn của link này https://kipalog.com/posts/Lap-trinh-Spring-voi-ung-dung-MyContact

Em đã truy xuất dữ liệu thành công sử dụng các hàm có sẵn trong CRUDReposity(findAll(),findByID())
Bây giờ em muốn truy vấn dữ liệu theo ý mình bằng câu lệnh Query ví dụ như: Xuất Phòng đang có rỗng chưa có người book(rom.status= 1) thì em làm cách nào ạ… Em đang làm theo mô hình Spring MVC, các anh giúp em với ạ

Mọi người giúp em với ạ :sleepy:

List<Room> findAllByStatus(Integer status);

Bạn có thể tham khảo thêm ở đây Query methods

Đây là cái RoomRepository của em

RomServiceIplm của em

RoomController

Chạy thi nó báo lỗi như sau ạ:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘roomRepository’: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.example.demo.repository.RoomRepository.findByStatus()!

Validation failed for query for method public abstract java.util.List com.example.demo.repository.RoomRepository.findByStatus()!

room is not mapped [select r from room r where r.ID_status =2]

  • Bạn thêm annotaion @Repository vào trước interface RoomRepository
  • findByStatus() là tên của method, viết tách nó ra khỏi List<Room>
  • romService chưa được @Autowired vào RoomController và còn viết sai.

Mình khuyên bạn nên học lại về Spring, nghiên cứu lại những khái niệm về DI, IoC, làm quen với Spring Context, tập query dữ liệu bằng JdbcTemplate … và nếu có gặp khó khăn thì post cả code lên chứ đừng chỉ chụp ảnh.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?