[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3069?page=c...
]
Max Rydahl Andersen commented on HHH-3069:
------------------------------------------
you use load to create a Person proxy then use get to load an Employee (same class
hiearchy) with the same id - something is clearly not consistent in the session state
hence an exception is the only way to avoid hiding this possible data consistency bug in
your apps data.
If we did not throw an exception how should hibernate otherwise let you know that the
Person proxy you got is invalid ?
In short don't use .load if you are not sure the id exists.
ObjectNotFoundException when proxy exists for super class of non
existant joined subclass
-----------------------------------------------------------------------------------------
Key: HHH-3069
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3069
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.5
Reporter: dan oxlade
A proxy of an entity which has a joined subclass is loaded into the session.
If the proxy resolves to null, i.e the id of the proxy has no matching row in the
database then future queries (in the same hibernate session) for any of the joined
subclass entities will fail with ObjectNotFoundExceptions from the returnNarrowedProxy
method of the DefaultLoadEventListener.
the following test method in JoinedSubclassTest demonstrates the failing test:
public void testProxyLoadedWhichDoesNotExist() throws Exception {
Session s = openSession();
Transaction t = s.beginTransaction();
Long id = Long.valueOf(0L);
Employee employee = (Employee) s.get(Employee.class,id);
assertNull(employee);
Person proxy = (Person) s.load(Person.class,id);
assertNotNull(proxy);
employee = (Employee) s.get(Employee.class,id);
assertNull(employee);
t.commit();
s.close();
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira