如何显示他租用的所有书籍的用户和列表 - 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
并将该方法添加到BorrowService
和BorrowController
可以,但它没有显示任何内容..
你的数据库里有什么吗?
是的,我愿意!我已将数据添加到表格中。
您究竟在哪里丢失了数据?在存储库上,在控制器上,在视图上?你调试了吗?
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章