[
https://hibernate.onjira.com/browse/HHH-7161?page=com.atlassian.jira.plug...
]
Guenther Demetz commented on HHH-7161:
--------------------------------------
>unless you attempt to call the method on a reference of type
SessionImpl itself, rather than Session
Sorry, that was in fact the problem, I wrote
{code}
SessionImpl session = (SessionImpl) em.getDelegate();
session.byNaturalId("D").load();
{code}
instead to use the interface
{code}
Session session = (Session) em.getDelegate();
session.byNaturalId("D").load();
{code}
Anyway I like to pinpoint, that I see it for the first time, that a cast to a concrete
class
makes the usage of one of it's interfaces impossible.
The type SessionImpl.IdentifierLoadAccessImpl is not visible (not
public) so the new API session.byId(..) is not useable
------------------------------------------------------------------------------------------------------------------------
Key: HHH-7161
URL:
https://hibernate.onjira.com/browse/HHH-7161
Project: Hibernate ORM
Issue Type: Bug
Components: core
Affects Versions: 4.1.0, 4.1.1
Reporter: Guenther Demetz
Assignee: Steve Ebersole
Priority: Minor
Labels: byId
Original Estimate: 1h
Remaining Estimate: 1h
Document
http://in.relation.to/Bloggers/41FeatureLoadingByNaturalId
says that the new approach has been made available for identifier based loading as well,
by listing following 2 new public methods:
public IdentifierLoadAccess byId(String entityName);
public IdentifierLoadAccess byId(Class entityClass);
Unfortunately IdentifierLoadAccess is a private inner class of SessionImpl so
session.byId(C.class).load(id);
gives following compile-error:
java.lang.Error: Unresolved compilation problem:
The type SessionImpl.IdentifierLoadAccessImpl is not visible
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira