[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5792) Unable to JOIN embedded objects in Criteria API

Phil Webb (JIRA) noreply at atlassian.com
Sun Aug 28 11:51:03 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43364#comment-43364 ] 

Phil Webb commented on HHH-5792:
--------------------------------

Thomas,

Could you please provide some sample code to explain your work-around?

> Unable to JOIN embedded objects in Criteria API
> -----------------------------------------------
>
>                 Key: HHH-5792
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5792
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: entity-manager, query-criteria
>    Affects Versions: 3.6.0
>            Reporter: scLee
>            Priority: Blocker
>         Attachments: Client.java, CriteriaApiTest.java, Name.java
>
>
> Exception is thrown when trying to JOIN embedded attribute in Criteria API. E.g. having the following entity:
> {quote}
> @Entity
> public class Client implements Serializable {    
>     @Id
>     public int id;
>     @Embedded
>     public Name name;
> }
> @Embeddable
> public class Name implements Serializable {
>     @Column
>     public String firstName;
>     @Column
>     public String lastName;
> }
> {quote}
> The following code
> {quote}
>         CriteriaQuery< Client > cq = cb.createQuery( Client.class );
>         Root< Client > root = cq.from( Client.class );
>         cq.where( cb.equal( root.*join*( "name" ).get( "firstName" ), "foo" ) );
> {quote}
> throws this exception:
> {quote}
> java.lang.ClassCastException: org.hibernate.ejb.metamodel.SingularAttributeImpl cannot be cast to javax.persistence.metamodel.ManagedType
> 	at org.hibernate.ejb.criteria.path.AbstractFromImpl.locateManagedType(AbstractFromImpl.java:151)
> 	at org.hibernate.ejb.criteria.path.AbstractFromImpl.locateAttributeInternal(AbstractFromImpl.java:145)
> 	at org.hibernate.ejb.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:216)
> 	at org.hibernate.ejb.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:449)
> 	at org.hibernate.ejb.criteria.path.AbstractFromImpl.join(AbstractFromImpl.java:433)
> 	at foo.CriteriaApiTest.embeddableInPath(CriteriaApiTest.java:45)
> {quote}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list