Json SpringBoot@OneToMany邮递员请求不起作用

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

1.具有与角色类(可以是多个)相关的OneToMany注释的用户类

2.带有@manytone和@JoinColumn注释的角色类

3.具有端点的控制器类

4.带有Json对象的邮递员请求引发异常,Json解析错误:无法反序列化
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}”)
公共响应属性deleteUser(@PathVariable Long id){
User=userRepository.findById(id)
.orelsetrow(()->new ResourceNotFoundException(“用户不存在,id为:+id));
userRepository.delete(用户);
Map response=newhashmap();
response.put(“已删除”,Boolean.TRUE);
返回ResponseEntity.ok(响应);
}
}


你能帮我吗?我真的不知道怎么了。谢谢

@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);
}


  }