Я получаю эти ошибки при интеграции Spring-Boot с репозиторием JPA
вот код
@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/api")
public class EmpController {
@Autowired
private CrudRepo crud;
@Autowired
private AddrCrudRepo addr;
@Autowired
private EntityManager entity;
//@Autowired
//private ModelMapper mapper;
private static int count = 0;
@Bean
public ModelMapper model() {
return new ModelMapper();
}
//@Autowired
// public EmpController(ModelMapper mapper) {
// this.mapper = mapper;
// }
@RequestMapping(path = "/post-addr", method = RequestMethod.POST)
public List<AddressModel> postAddr(@Valid @RequestBody List<AddressRequest> addr1){
// crud.findById(id)
//AddressModel list = new AddressModel();
EmployeeModel emp = new EmployeeModel();
System.out.println("CALLING THE MAPPER "+addr1);
List<AddressModel> addr_list = ObjectMapperUtils.mapAll(addr1, AddressModel.class);
System.out.println("CALLED THE MAPPER "+addr_list);
addr_list.forEach((a) -> {
crud.findById(a.getEmpId()).ifPresent((b) -> {
System.out.println(this.count++);
a.setEmp_id(b);
b.getAddress().add(a);
});
});
// AddressModel addr_list = model().map(addr1, AddressModel.class);
//
// crud.findById(addr1.getEmp_id()).ifPresent((b) -> {
// addr_list.setEmp_id(b);
//
// });`enter code here`
System.out.println(addr_list.size());
List<AddressModel> addr3 = addr.saveAll(addr_list);
System.out.println(addr3);
return addr_list;
}
получает ошибку в методе postAddr
, когда он возвращает List<AddressModel>
, а вот AddressModel
@Entity
@Table(name="Emp_Address")
public class AddressModel implements Serializable{
@Column(name="address_id")
@Id
private Integer address_id;
@Column(name="city")
private String city;
@Column(name="states")
private String states;
@Transient
private Integer empId;
@ManyToOne
@JoinColumn(name="emp_id")
private EmployeeModel emp_id;
public AddressModel() {
}
//getter and setter
и EmployeeModel
@Entity
@Table(name="Employee")
public class EmployeeModel implements Serializable{
@Column(name="Emp_id")
@Id
private Integer emp_id;
@Column(name="Emp_Name")
private String emp_name;
@OneToMany(mappedBy="emp_id")
private Collection<AddressModel> address = new ArrayList<>();
public EmployeeModel() {
}
//getter and setters
так что пока saveAll выполняется правильно, но когда метод postAddr возвращает List, он выбрасывает StackOverflow