json - 在 PutMapping 中获取空指针异常
问题描述
我有 3 个实体用户、角色和书籍都是双向连接的
用户和角色->manytomany joinTable(user_roles)
用户和书籍->manytomany joinTable(book_users)
我希望用户发行一本书意味着只更新可连接(book_users)列
用户控制器
包 com.kk.booklendingapi.booklending1.controller;
@RestController
@RequestMapping("/rest/user")
public class UserController {
@Autowired
private BookRepository bookRepository;
@Autowired
private UserRepository userRepository;
@GetMapping("/books")
public List<Book> getBooks(){
return bookRepository.findAll();
}
@GetMapping("/books/{bookName}")
public Book getBooks(@PathVariable String bookName){
return bookRepository.findByBookName(bookName);
}
//test purpose
@GetMapping("/users")
public List<OnlyUsersRequest> getUsers(){
return userRepository.getOnlyUsers();
}
@PutMapping("/{userId}")
public User issueBookByName(@PathVariable int userId,@RequestBody String bookName){
Optional<User> optionalUser=userRepository.findById(userId);
User user=optionalUser.get();
if(user==null) {
throw new RuntimeException("USer Not Found: "+user);
}
System.out.println(user.getUsername());
System.out.println(bookName+" "+bookName.getClass());
Book theBook=bookRepository.findByBookName(bookName);
System.out.println(theBook.getbName());
user.addBook(theBook);
return userRepository.save(user);
}
}
在 bookrepository 中进行了自定义 jpa 查询,工作正常
@GetMapping("/books/{bookName}")
public Book getBooks(@PathVariable String bookName){
return bookRepository.findByBookName(bookName);
}
那么为什么我在 putMapping 中得到 nullpointerexception
json网址
http://localhost:8484/rest/user/2
json以纯文本形式发送
Angular_Avengers
错误
"java.lang.NullPointerException\r\n\tat com.kk.booklendingapi.booklending1.controller.UserController.issueBookByName(UserController.java:60)\r\n\
解决方案
推荐阅读
- delphi - 带有 Delphi-7 的 Indy10 无法下载某些 SSL 页面,即使使用 2019 年 5 月的 DLL
- forms - 如何在 Blazor 中获得级联值?
- java - 当 ForkJoinPool 结束时
- haskell - 使用 Haskell 解析嵌套的 yaml
- reactjs - GET 请求在 url 中未定义
- mysql - 此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询'同时提取第 6 大薪水
- java - 在不获取 NullPointerException 的情况下设置 null
- javascript - 仅在反应中阻止特定页面的浏览器后退按钮
- python - 电影推荐系统:预计会看到 2 个数组,但得到了以下 1 个数组的列表
- java - 有没有办法在排序的集合或数组之间放置换行符?