如何显示他租用的所有书籍的用户和列表 - SpringBoot、JPA、MySql

Posted

技术标签:

【中文标题】如何显示他租用的所有书籍的用户和列表 - SpringBoot、JPA、MySql【英文标题】:How to display User and list of all Books that he rented - SpringBoot, JPA, MySql 【发布时间】:2020-11-23 18:46:36 【问题描述】:

我正在尝试使用 Spring boot + mysql + JPA 构建一个库 rest api。

我的数据库是这样的:

以下是实体、存储库和服务:

User.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*

Book.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*

Borrow.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;

BorrowRepository.java

public interface BorrowRepository extends JpaRepository<Borrow, Integer> 

    public List<Borrow> findByUserUserId(Integer userId);

我正在尝试找到一种方法来显示他的用户和书籍列表 已经租了。

我在 `BorrowRepository 中添加了findByUserUserId 方法。

我还在 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 吗?

任何帮助将不胜感激。

【问题讨论】:

问题是? 我正在尝试找到一种方法来显示用户和他租借的书籍列表,但我无法做到。我想也许可以在BorrowRepository 中添加findByUserUserId 并将该方法添加到BorrowServiceBorrowController 可以,但它没有显示任何内容.. 你的数据库里有什么吗? 是的,我愿意!我已将数据添加到表格中。 您究竟在哪里丢失了数据?在存储库上,在控制器上,在视图上?你调试了吗? 【参考方案1】:

由于您已经在借用表中使用了 used_id,请尝试将 findByUserUserId 方法编辑为 findByUserId,假设您已填充数据库,这应该可以工作。

【讨论】:

正如尝试过的那样,但我收到了这个错误:No property id found for type User! Traversed path: Borrow.user. 我把findByUserUserId 写成这样,因为第一个User 描述了User 实体和UserId 那个Id 字段。跨度> 【参考方案2】:

尝试将方法的名称更改为“findByUserId”以及 PathVariable 的名称以匹配参数。

【讨论】:

我收到了这个错误:No property id found for type User! Traversed path: Borrow.user. 我把 findByUserUserId 写成这样,因为第一个 User 描述了 User 实体和 UserId 那个 Id 字段。

以上是关于如何显示他租用的所有书籍的用户和列表 - SpringBoot、JPA、MySql的主要内容,如果未能解决你的问题,请参考以下文章

如何验证列表框(MVVM)?

CakePHP 显示所有作者不在作者表中的书籍

如何检索一个人的所有 GitHub 存储库列表?

如何使用 Django 在 HTML 中显示多个对象的列表,一个在另一个之下?

bzoj3822: 文学

如何使用 Youtube API 访问特定播放列表中的所有视频?