Getting java.lang.IllegalStateException: org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl closed
error while performing entity delete operation.
Sample code:
1.Group.java
@Entity
@Table(name = "user_group")
public class Group {
...
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REMOVE})
@JoinTable(name = "users_group_relation",joinColumns = @JoinColumn(name = "group_id"),inverseJoinColumns = @JoinColumn(name = "user_id")
)
private List<User> members;
}
User.java
@Entity
@Table(name = "users")
public class User {
...
@ManyToMany(mappedBy = "members", cascade = {CascadeType.REMOVE})
private List<Group> groups;
}
Delete operation code:
private void delete(int groupId) throws Exception {
Transaction transaction = null;
try (Session session = sessionFactory.openSession()) {
transaction = session.beginTransaction();
session.remove(groupId);
transaction.commit();
return result;
} catch (Exception ex) {
if (transaction != null) {
transaction.rollback();
}
throw ex;
}
}
What is the problem here? And how to resolve this?