[hibernate-dev] Should CollectionEntry::snapshot Include The Results Of Queued Operations?

Steve Ebersole steve at hibernate.org
Tue Jan 22 10:01:50 EST 2013


To be honest, I am not sure there is a well defined expectation here.

I would say that the logical answer in my opinion would seem to be that 
that snapshot should not contain queued things until after the flush 
that processes them.  But that's just my "gut feel".

Sorry I cannot be more definitive.

By the way, you mention 3.6.  Have you tried with 4.0 or 4.1 to see the 
outcome there?

On 01/21/2013 03:38 PM, John Walker wrote:
> In hibernate 3.6.10, CollectionEntry::snapshot is sometimes initialized
> after queued operations (SimpleAdd, Clear,etc) are processed.  As a result,
> the snapshot can contain transient entities, and does not accurately reflect
> the state of the collection in the database.
>
> Is this intentional, or should the CollectionEntry::snapshot be taken
> *after* all queued operations have been performed?
>
> For an example of what I'm talking about, see
> org.hibernate.engine.loading.CollectionLoadContext::endLoadingCollection(Loa
> dingCollectionEntry, CollectionPersister).
>
> This method calls endRead(), which for some collections (like PersistentBag)
> applies queued operations.    Then it calls
> CollectionEntry::postInitialize(),  which takes the initial snapshot of the
> collection.
>
> Sorry to keep bugging you guys about this. (I posted a similar question
> about the same problem.)  I've been having trouble finding good sources of
> information about Hibernate archecture/how things are "supposed" to  work.
>
> Thanks!
>
> -John
>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev



More information about the hibernate-dev mailing list