繁体   English   中英

"ManyToOne延迟加载不起作用Spring启动"

[英]ManyToOne Lazy loading not working Spring boot

我已经使用 Spring boot 制作了其余的 api。 它有两个实体员工和部门。 员工有部门对象,所以关系是多对一。 它是单向的。 部门没有员工名单。 当我点击员工 GET 方法端点时,我收到 com.fasterxml.jackson.databind.exc.InvalidDefinitionException 异常。 请告诉我如何解决它。

员工等级:

@Entity
@Table(name = "employees")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String firstName;
private String lastName;
private Integer salary;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="department_id",referencedColumnName = "id",nullable = false)
private Department department;

部门类:

@Entity
@Table(name = "departments")
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;

员工服务:

@Service
public class EmployeeService {

private final EmployeeRepository employeeRepository;

@Autowired
public EmployeeService(EmployeeRepository employeeRepository) {
    this.employeeRepository = employeeRepository;
}

public List<Employee> getAllEmployees(){
    return employeeRepository.findAll();
}

public Employee getEmployeeById(Integer id){
    Optional<Employee> optionalEmployee = employeeRepository.findById(id);
    if(optionalEmployee.isEmpty()){
        throw new IllegalStateException("Department does not exists");
    }
    return optionalEmployee.get();
}

public Employee createEmployee(Employee employee){
    return employeeRepository.save(employee);
}

员工控制器:

@RestController
@RequestMapping(path = "/employees")
public class EmployeeController {

private final EmployeeService employeeService;

@Autowired
public EmployeeController(EmployeeService employeeService) {
    this.employeeService = employeeService;
}

@GetMapping
public List<Employee> getAllDepartments(){
    return employeeService.getAllEmployees();
}
   @PostMapping
public Employee createEmployee(@RequestBody Employee employee){
    return employeeService.createEmployee(employee);
}}

您必须将@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)<\/code>注释放在ManyToOne<\/code>关系映射中

"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM