[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4953) Inconsistent behavior when fetching cached subclass entities from 2L
Guenther Demetz (JIRA)
noreply at atlassian.com
Wed May 19 02:31:11 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-4953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=37211#action_37211 ]
Guenther Demetz commented on HHH-4953:
--------------------------------------
>>Could this be related to HHH-1134?
The unique relation between this issue HHH-4953 and HHH-1134 in my humble opinion is the post of HG added on 18/May/10 4:55 AM:
in fact his post describes actually HHH-4953 not HHH-1134.
HHH-1134 objects about querying and is in my opinion not a real bug because it get solved by using the force discriminator option.
> Inconsistent behavior when fetching cached subclass entities from 2L
> --------------------------------------------------------------------
>
> Key: HHH-4953
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4953
> Project: Hibernate Core
> Issue Type: Bug
> Components: caching (L2)
> Affects Versions: 3.2.5, 3.3.1, 3.5.0.Beta-1, 3.5.0-Beta-2, 3.5.0-Beta-3, 3.5.0-Beta-4, 3.5.0-CR-1, 3.5.0-CR-2
> Environment: Hibernate3.5.0CR2,HSQLDB, EHCache as 2L-cache Impl
> Reporter: Guenther Demetz
> Attachments: Test2LCache.jar
>
>
> Enabling the hibernate second-level cache is leading to inconsistent behavior when fetching cached subclass entities as opposed to fetching non-cached subclass entities.
> For more informations, please see
> https://forum.hibernate.org/viewtopic.php?f=1&t=1002880&p=2425931#p2425931
> Testcase attached.
> Cause:
> IMHO the bug consists in the fact, that
> persister.getRootEntityName() instead to persister.getEntityName() is passed as 3thrd parameter
> to the constructor of CacheKey in most places where CacheKey is used, for example in DefaultLoadEventListener.java:
> new CacheKey(
> event.getEntityId(),
> persister.getIdentifierType(),
> persister.getRootEntityName(),
> source.getEntityMode(),
> source.getFactory()
> In this way the real entity name get swallowed and the type-saveness is not guaranteed anymore.
> Workaround:
> Subclass2 tofind = null;
> try {
> tofind = (Subclass2) em.find(Subclass2.class,"identifier1");
> }
> catch (ClassCastException cc) {
> // swallow , this is a workaround
> }
--
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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list