Как отобразить пользователя и список всех книг, которые он арендовал - SpringBoot, JPA, MySql - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать api для отдыха библиотеки, используя Spring boot + Mysql + JPA.

Моя база данных выглядит так:

введите описание изображения здесь

Вот сущности, репо и сервисы:

Пользователь. java

@Entity
public class User {


    @Id
    @GeneratedValue
    private Integer userId;
    private String name;
    private String surname;
    private String username;
    private String email;
    private String password;

    *all getters and setters*
}

Книга. java

@Entity
public class Book {

    @Id
    @GeneratedValue
    private Integer bookId;
    private String title;
    private String ISBN;
    private String author;
    private String issuer;
    private Integer dateOfIssue;
    private Boolean IsRented;

    *all getters and setters*
}

Займ. java

@Entity
public class Borrow {

    @Id
    @GeneratedValue
    private Integer id;
    private Date takenDate;
    private Date broughtDate;

    @ManyToOne
    @JoinColumn(name="book_id")
    private Book book;

    @ManyToOne
    @JoinColumn(name="user_id")
    private User user;
}

Займ репозиторий. java

public interface BorrowRepository extends JpaRepository<Borrow, Integer> {

    public List<Borrow> findByUserUserId(Integer userId);
}

Я пытаюсь найти способ отобразить пользователя и список книг, которые он арендовал.

Я добавил метод findByUserUserId в `BorrowRepository.

Также в BorrowService. java я добавил следующие строки кода:

@Service
public class BorrowService {

    public List<Borrow> getItemByUser(Integer userId){
        borrowRepo.findByUserUserId(userId);
        return borrowRepo.findAll();
    }

И в BorrowController. java добавил следующее:

 @RequestMapping("/user/{id}/borrow")
    public List<Borrow> getAllItemsByUser(@PathVariable Integer userId){
        return service.getItemByUser(userId);
    }

Могу ли я использовать @Query?

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

попробуйте изменить имя метода на findByUserId, а также имя PathVariable, чтобы оно соответствовало параметру.

0 голосов
/ 03 августа 2020

Поскольку вы уже использовали used_id в таблице заимствований, попробуйте отредактировать метод findByUserUserId на findByUserId, и это должно сработать, если вы заполнили базу данных.

...