Я внедряю приложение api для весенней загрузки, чтобы данные pu sh помещались в БД Я показал метод PUT, который получает родительский объект и пытается поместить его sh непосредственно в БД с помощью hibernate.
Department_T - Parent Object
Employee_T - Child Object
//Department_T
@Id
@Column(name="DEPARTMENT_ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private BigDecimal dept_Id;
@OneToMany(fetch=FetchType.LAZY,
cascade= CascadeType.ALL,
mappedBy = "department")
private List<Employee_T> employee= new ArrayList<Employee_T>();
//Employee_T
@Id
@Column(name="EMPLOYEE_ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private BigDecimal emp_id;
@ManyToOne(cascade= CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
@JoinColumn(name="DEPARTMENT_ID", nullable = false)
private Department_T department;
//DAO Class
@Override
public void updateDepartment(Department_T dept) {
// get the current hibernate session
Session currentSession = entityManager.unwrap(Session.class);
// save scheduler
currentSession.saveOrUpdate(dept);
}
//REST Class
@PutMapping("/update-department")
public Department_T updateDepartment(@RequestBody Department_T dept) {
scheduler.updateDepartment(dept);
return dept;
}
Когда я выполняю в POSTMAN, получаю исключение
"error": "Internal Server Error",
"message": "JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is weblogic.transaction.RollbackException: setRollbackOnly called on transaction",
Я получаю полезную нагрузку как отдельный объект (родительский объект, который содержит дочерний объект) и пытаюсь сохранить его в БД. Я проверил код и все выглядит хорошо. Если я удаляю дочерний список из полезной нагрузки и пропускаю только родительскую строку, он исправляется.
Пожалуйста, помогите.
С уважением, Радж