Json SpringBoot@OneToMany邮递员请求不起作用
1.具有与角色类(可以是多个)相关的OneToMany注释的用户类 2.带有@manytone和@JoinColumn注释的角色类 3.具有端点的控制器类 4.带有Json对象的邮递员请求引发异常,Json解析错误:无法反序列化Json SpringBoot@OneToMany邮递员请求不起作用,json,spring-boot,hibernate,Json,Spring Boot,Hibernate,1.具有与角色类(可以是多个)相关的OneToMany注释的用户类 2.带有@manytone和@JoinColumn注释的角色类 3.具有端点的控制器类 4.带有Json对象的邮递员请求引发异常,Json解析错误:无法反序列化com.cvt.programmingTask.model.Userout of START\u数组令牌的实例 类用户() 用户控制器Java文件 package com.cvt.programmingTask.controller; import java.uti
com.cvt.programmingTask.model.User
out of START\u数组令牌的实例
类用户()
用户控制器Java文件
package com.cvt.programmingTask.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cvt.programmingTask.exception.ResourceNotFoundException;
import com.cvt.programmingTask.model.User;
import com.cvt.programmingTask.repository.UserRepository;
/**
* @author edibi
*
*/
//@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/api/v1")
public class UserController {
@Autowired
private UserRepository userRepository;
//get all users
@GetMapping("/users")
public List<User> getAllUsers(){
return userRepository.findAll();
}
//create user rest api
@PostMapping("/users")
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
//get user
@GetMapping ("/users/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
return ResponseEntity.ok(user);
}
//update user
@PutMapping("/users/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails){
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
user.setFirstName(userDetails.getFirstName());
user.setLastName(userDetails.getLastName());
user.setEmailId(userDetails.getEmailId());
user.setRoles(userDetails.getRoles());
User updatedUser = userRepository.save(user);
return ResponseEntity.ok(updatedUser);
}
//delete User rest api
@DeleteMapping("/users/{id}")
public ResponseEntity< Map<String, Boolean> >deleteUser(@PathVariable Long id){
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
userRepository.delete(user);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
}
}
package com.cvt.programmingTask.controller;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.http.ResponseEntity;
导入org.springframework.web.bind.annotation.DeleteMapping;
导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.PathVariable;
导入org.springframework.web.bind.annotation.PostMapping;
导入org.springframework.web.bind.annotation.PutMapping;
导入org.springframework.web.bind.annotation.RequestBody;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RestController;
导入com.cvt.programmingTask.exception.ResourceNotFoundException;
导入com.cvt.programmingTask.model.User;
导入com.cvt.programmingTask.repository.UserRepository;
/**
*@作者埃迪比
*
*/
//@交叉原点(原点=”http://localhost:4200")
@RestController
@请求映射(“/api/v1”)
公共类用户控制器{
@自动连线
私有用户存储库用户存储库;
//获取所有用户
@GetMapping(“/users”)
公共列表getAllUsers(){
返回userRepository.findAll();
}
//创建用户RESTAPI
@后映射(“/用户”)
公共用户createUser(@RequestBody User){
返回userRepository.save(用户);
}
//获取用户
@GetMapping(“/users/{id}”)
公共响应属性getUserById(@PathVariable Long id){
User=userRepository.findById(id)
.orelsetrow(()->new ResourceNotFoundException(“用户不存在,id为:+id));
返回ResponseEntity.ok(用户);
}
//更新用户
@PutMapping(“/users/{id}”)
public ResponseEntity updateUser(@PathVariable-Long-id,@RequestBody-User-userDetails){
User=userRepository.findById(id)
.orelsetrow(()->new ResourceNotFoundException(“用户不存在,id为:+id));
user.setFirstName(userDetails.getFirstName());
user.setLastName(userDetails.getLastName());
user.setEmailId(userDetails.getEmailId());
user.setRoles(userDetails.getRoles());
User updateuser=userRepository.save(用户);
返回ResponseEntity.ok(updateUser);
}
//删除用户RESTAPI
@DeleteMapping(“/users/{id}”)
公共响应属性
你能帮我吗?我真的不知道怎么了。谢谢@MicroLova你能上传代码吗?当然可以,请看一看,谢谢。
package com.cvt.programmingTask.model;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="roles")
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "name")
private String name;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="user_id", nullable=false)
private User user;
public Roles() {
}
public Roles(Long id, String name, User user) {
super();
this.id = id;
this.name = name;
this.user = user;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package com.cvt.programmingTask.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cvt.programmingTask.exception.ResourceNotFoundException;
import com.cvt.programmingTask.model.User;
import com.cvt.programmingTask.repository.UserRepository;
/**
* @author edibi
*
*/
//@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/api/v1")
public class UserController {
@Autowired
private UserRepository userRepository;
//get all users
@GetMapping("/users")
public List<User> getAllUsers(){
return userRepository.findAll();
}
//create user rest api
@PostMapping("/users")
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
//get user
@GetMapping ("/users/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
return ResponseEntity.ok(user);
}
//update user
@PutMapping("/users/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails){
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
user.setFirstName(userDetails.getFirstName());
user.setLastName(userDetails.getLastName());
user.setEmailId(userDetails.getEmailId());
user.setRoles(userDetails.getRoles());
User updatedUser = userRepository.save(user);
return ResponseEntity.ok(updatedUser);
}
//delete User rest api
@DeleteMapping("/users/{id}")
public ResponseEntity< Map<String, Boolean> >deleteUser(@PathVariable Long id){
User user = userRepository.findById(id)
.orElseThrow(()->new ResourceNotFoundException("User does not exist with id : " +id));
userRepository.delete(user);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
}
}