Executar uma Query JPA

Olá pessoal!!

Estou com o seguinte problema estou desenvolvendo uma aplicação utilizando JPA utilizando o ToopLink entao estou tentando executar uma Query assim

List vendas = em.createQuery("select a from Vendaproduto a  join Hospedagem h  on h.hospedagem_id = a.hospedagem_id").getResultList();

porem executando esse comando tenho o seguinte exception, se alguem puder me ajudar agradeço

abraço

init:
deps-jar:
Compiling 1 source file to D:\UNIPAR\Hotel\build\classes
compile:
run:
[TopLink Info]: 2009.01.03 11:10:24.704–ServerSession(22355808)–TopLink, version: Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))
[TopLink Info]: 2009.01.03 11:10:26.450–ServerSession(22355808)–file:/D:/UNIPAR/Hotel/build/classes/-Hotel login successful
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:209)
at ClassesVisuais.ConsumoDao.buscarConsumo(ConsumoDao.java:30)
at ClassesVisuais.Hospedagem.(Hospedagem.java:39)
at ClassesVisuais.BuscarHospedagem.jButton2ActionPerformed(BuscarHospedagem.java:161)
at ClassesVisuais.BuscarHospedagem.access$100(BuscarHospedagem.java:23)
at ClassesVisuais.BuscarHospedagem$3.actionPerformed(BuscarHospedagem.java:87)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
at java.awt.Component.processMouseEvent(Component.java:6099)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3287)
at java.awt.Component.processEvent(Component.java:5864)
at java.awt.Container.processEvent(Container.java:2109)
at java.awt.Component.dispatchEventImpl(Component.java:4460)
at java.awt.Container.dispatchEventImpl(Container.java:2167)
at java.awt.Component.dispatchEvent(Component.java:4286)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4465)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4129)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4059)
at java.awt.Container.dispatchEventImpl(Container.java:2153)
at java.awt.Window.dispatchEventImpl(Window.java:2554)
at java.awt.Component.dispatchEvent(Component.java:4286)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: Exception [TOPLINK-8024] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [select a from Vendaproduto a join Hospedagem h on h.hospedagem_id = a.hospedagem_id ], line 1, column 47: syntax error at [h].
Internal Exception: line 1:47: expecting DOT, found ‘h’
at oracle.toplink.essentials.exceptions.EJBQLException.syntaxErrorAt(EJBQLException.java:379)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.handleANTLRException(EJBQLParser.java:335)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.addError(EJBQLParser.java:278)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.reportError(EJBQLParser.java:378)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.joinAssociationPathExpression(EJBQLParser.java:1909)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.join(EJBQLParser.java:1768)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.identificationVariableDeclaration(EJBQLParser.java:1629)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.fromClause(EJBQLParser.java:454)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectStatement(EJBQLParser.java:179)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:135)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.parse(EJBQLParser.java:166)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.buildParseTree(EJBQLParser.java:127)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:215)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:189)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:153)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.(EJBQueryImpl.java:114)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.(EJBQueryImpl.java:99)
at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.(EJBQueryImpl.java:86)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:204)
… 30 more
Caused by: line 1:47: expecting DOT, found ‘h’
at persistence.antlr.Parser.match(Parser.java:212)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.joinAssociationPathExpression(EJBQLParser.java:1901)
… 44 more
CONSTRUÍDO COM SUCESSO (tempo total: 23 segundos)

Olá
Se vc ao inves de usar join, fazer a pk de um igual a fk do outro… acho que funciona
to suspeitando deste join… srrsrsrs não sei não gosto de join!! srrsrsr

Mas tenta fazer um teste… pk = fk…

Espero ter ajudado
Flwssss

Carinha seguinte.
Para fazer este tipo de associação pelo que entendi até agora, no JPA.
Você deve criar relacionamentos entre as suas entidades.
Através das anotações @oneToMany e @ManyToOne.
Neste artigo você vai encontrar uma explicação de como fazer isto
http://www.devmedia.com.br/articles/viewcomp.asp?comp=6539
Já aqui tem um exemplo de como fazer e executar joins.
http://www.oracle.com/technology/pub/articles/vasiliev-jpql.html

Boa sorte.

Valeu pessoal pela ajuda com isso consegui fazer o que eu precisava

obrigado