HHH-9231 Rolled back entity insert remains in level 2 collection cache in JBoss EAP 6
Issue
- A
OneToManyassociation is defined between two entity types
@Entity
public class Department {
@OneToMany(...)
private List<Employee> employees;
}
@Entity
public class Employee {
@ManyToOne(...)
private Department department;
}
- In a transaction, create an instance referencing the "One" class without updating the association collection, flush the session, initialize the association collection then rollback
Department dept = ... // load a department but do not initialize its employees list
entityManager.persist(new Employee("John Smith", dept));
entityManager.flush()
List<Employee> worksIn = dept.getEmployees();
tx.rollback();
- After rollback, the association collection retains a reference to the non-existent (rolled back) entity and access to the association may result in
javax.persistence.EntityNotFoundException
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 6
- Hibernate 4
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.