Исключение: транзакция JTA неожиданно откатилась (возможно, из-за тайм-аута) - PullRequest
1 голос
/ 20 января 2020

Я внедряю приложение 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",

Я получаю полезную нагрузку как отдельный объект (родительский объект, который содержит дочерний объект) и пытаюсь сохранить его в БД. Я проверил код и все выглядит хорошо. Если я удаляю дочерний список из полезной нагрузки и пропускаю только родительскую строку, он исправляется.

Пожалуйста, помогите.

С уважением, Радж

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...