[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3129?page=c...
]
Marcelo Alves commented on HHH-3129:
------------------------------------
Gail,
I'm facing the same problem as CHILLAN reported. Is there another way to discovery the
node "name" of a collection inside the "onPostRecreateCollection" of
PostCollectionRecreateEventListener?
Inside the "onPostRemoveCollection" of PostCollectionRemoveEventListener
everything is fine and I can get the node with no problem.
The code in the "onPostRecreateCollection" method wich I have problem is
public void onPostRecreateCollection(PostCollectionRecreateEvent e) {
.....
Collection c =
hibernateConfiguration.getCollectionMapping(e.getCollection().getRole());
Table t = c.getCollectionTable();
System.out.println("Tabela: " + t.getName());
Iterator it =
e.getCollection().entries(e.getSession().getFactory().getCollectionPersister(e.getCollection().getRole()));
for (;it.hasNext();) {
System.out.println("Removendo... " + it.next().toString());
}
........
}
The "e.getCollection().getRole()" call returns null.
Thanks
Null Role in PersitentCollection during a onCollectionRecreate() in
an Interceptor
----------------------------------------------------------------------------------
Key: HHH-3129
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3129
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.6
Environment: Any
Reporter: Jose CHILLAN
Original Estimate: 5 minutes
Remaining Estimate: 5 minutes
When the "onCollectionRecreate" is invoked on an Interceptor, the getRole()
method returns null. After investigation,
the problem is located in the class CollectionEntry in one of its constructors and is
easily solved using the patch :
public CollectionEntry(CollectionPersister persister, PersistentCollection collection)
{
// new collections that get found + wrapped
// during flush shouldn't be ignored
ignore = false;
collection.clearDirty(); //a newly wrapped collection is NOT dirty (or we get
unnecessary version updates)
snapshot = persister.isMutable() ? collection.getSnapshot(persister) : null;
// -- ADDED LINE HERE --
role = persister.getRole();
collection.setSnapshot(loadedKey, role, snapshot);
}
Thanks
--
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