Olá, tenho uma dúvida referente a JPA, e gostaria se possível que alguém pudesse sanar:
assim como no hibernate é possível mapear objetos para serem persistidos em uma base de dados relacional?
Como posso fazer este mapeamento?
JPA não é um framework como o Hibernate… é uma API, uma especificação da Sun, um padrão… e frameworks como Hibernate, iBatis e Top Link a seguem para não estarem fora do padrão.
você pode usar Hibernate sem JPa… porém estará fora do padrão, já que é melhor usar anotações JPA independentemente do framework O/R do que usar os proprios mapeamentos do framework.
Fiz a alteração que você sugeriu.
Mas agora esta dando erro de compilação.
Se puder dar uma ajuda agradeço.
//Linha alterada
Query q = em.createQuery("SELECT c FROM KpiIndicadorPU c where c.valores.indIntId = 1");
//ERRO
06/01/2009 21:03:45 com.inssoft.kpi.server.data.JpaTeste main
SEVERE: null
java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:194)
at com.inssoft.kpi.server.data.JpaTeste.XMLNode(JpaTeste.java:62)
at com.inssoft.kpi.server.data.JpaTeste.main(JpaTeste.java:168)
Caused by: Exception [TOPLINK-8036] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [SELECT c FROM KpiIndicadorPU c where c.valores.indIntId = 1], line 1, column 40: invalid navigation expression [c.valores.indIntId], cannot navigate collection valued association field [valores].
at oracle.toplink.essentials.exceptions.EJBQLException.invalidCollectionNavigation(EJBQLException.java:426)
at oracle.toplink.essentials.internal.parsing.DotNode.checkNavigation(DotNode.java:137)
[quote=ale-asilva]Fiz a alteração que você sugeriu.
Mas agora esta dando erro de compilação.
Se puder dar uma ajuda agradeço.
[code]
//Linha alterada
Query q = em.createQuery(“SELECT c FROM KpiIndicadorPU c where c.valores.indIntId = 1”);
//ERRO
06/01/2009 21:03:45 com.inssoft.kpi.server.data.JpaTeste main
SEVERE: null
java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:194)
at com.inssoft.kpi.server.data.JpaTeste.XMLNode(JpaTeste.java:62)
at com.inssoft.kpi.server.data.JpaTeste.main(JpaTeste.java:168)
Caused by: Exception [TOPLINK-8036] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [SELECT c FROM KpiIndicadorPU c where c.valores.indIntId = 1], line 1, column 40: invalid navigation expression [c.valores.indIntId], cannot navigate collection valued association field [valores].
at oracle.toplink.essentials.exceptions.EJBQLException.invalidCollectionNavigation(EJBQLException.java:426)
at oracle.toplink.essentials.internal.parsing.DotNode.checkNavigation(DotNode.java:137)
[/code][/quote]
Cara poe aqui tuas classes de mapeamento, dentro das tag code