ola pessoal
bom seguinte, estou usando o JPA 2.0 para a persistência de dados de um sistema web
o cadastro, alteração e exclusão funcionam tranquilo.
meu problema é na hora das consultas eu fiz uma classe de teste para ver se funciona
podem dar uma olhada e me dizer o que tenho feito de errado pois da esse erro
Cara, to terminando um projeto agora, que foi escrito quase todas as consultas usando o CriteriaBuilder…
Recomendacao: nao use este troço!! aiuehauieh. Alem de ser complicado, nao te da tanta vantagem assim… vc perde mais tempo escrevendo essa consulta, do que escrever em JPQL e escrever 3 testes unitarios pra ele…
mas de qualquer forma, tente usar o parametro passado por parametro direto
O erro nem esta na sua consulta… esta BEEMM antes…
ele nao esta nem conseguindo fazer a conexao com o banco…
Hebert_Coelho
igor_ks:
O erro nem esta na sua consulta… esta BEEMM antes…
ele nao esta nem conseguindo fazer a conexao com o banco…
2
Olha se o usuário/senha estão corretos. Se você está com acesso ao banco de dados.
jaissonduarte
jakefrog:
igor_ks:
O erro nem esta na sua consulta… esta BEEMM antes…
ele nao esta nem conseguindo fazer a conexao com o banco…
2
Olha se o usuário/senha estão corretos. Se você está com acesso ao banco de dados.
pois é foi o que eu percebi quando enchi meu código de sistem.out.println
mas estranho para cadastrar, alterar e excluir ele funciona
Ok vou postar o código na integra para ver se eu posso alterar em algum lugar
e senha e usuario estão tudo Ok se não, não deixaria nem adicionar dados
o código full:
packagemodelo.controleJPA;importjava.io.Serializable;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.Query;importjavax.persistence.EntityNotFoundException;importjavax.persistence.criteria.CriteriaQuery;importjavax.persistence.criteria.Root;importjavax.transaction.UserTransaction;importmodelo.Area;importmodelo.Curso;importjava.util.ArrayList;importjava.util.List;importmodelo.controleJPA.exceptions.NonexistentEntityException;importmodelo.controleJPA.exceptions.PreexistingEntityException;importmodelo.controleJPA.exceptions.RollbackFailureException;/** * * @author jaisson D */publicclassAreaJpaControllerimplementsSerializable{publicAreaJpaController(UserTransactionutx,EntityManagerFactoryemf){this.utx=utx;this.emf=emf;}privateUserTransactionutx=null;privateEntityManagerFactoryemf=null;publicEntityManagergetEntityManager(){returnemf.createEntityManager();}publicvoidcreate(Areaarea)throwsPreexistingEntityException,RollbackFailureException,Exception{...}publicvoideditar(Areaarea)throwsNonexistentEntityException,RollbackFailureException,Exception{...}publicvoidexcluir(Integerid)throwsNonexistentEntityException,RollbackFailureException,Exception{...}publicList<Area>findAreaEntities(){returnfindAreaEntities(true,-1,-1);}publicList<Area>findAreaEntities(intmaxResults,intfirstResult){returnfindAreaEntities(false,maxResults,firstResult);}privateList<Area>findAreaEntities(booleanall,intmaxResults,intfirstResult){EntityManagerem=getEntityManager();try{CriteriaQuerycq=em.getCriteriaBuilder().createQuery();cq.select(cq.from(Area.class));Queryq=em.createQuery(cq);if(!all){q.setMaxResults(maxResults);q.setFirstResult(firstResult);}returnq.getResultList();}finally{em.close();}}publicAreafindArea(Integerid){EntityManagerem=getEntityManager();try{returnem.find(Area.class,id);}finally{em.close();}}}
e ai o que acham eu separei a classe que faz a consulta só para não estragar o projeto
ola pessoal
alguém sabe fazer uma consulta simples com JPA
por favor
olha o que eu re fiz:
packageteste;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.Persistence;importjavax.persistence.TypedQuery;importjavax.persistence.criteria.CriteriaBuilder;importjavax.persistence.criteria.CriteriaQuery;importjavax.persistence.criteria.Root;importmodelo.Area;/** * * @author jaisson D */publicclassNewClass{publicstaticvoidmain(String[]args){EntityManagerFactoryemf=Persistence.createEntityManagerFactory("cadastroAjaxPU");System.out.println(emf);EntityManagerem=emf.createEntityManager();System.out.println(em);System.out.println("1");CriteriaBuilderbuilder=em.getCriteriaBuilder();System.out.println("2");CriteriaQuery<Area>criteriaQuery=builder.createQuery(Area.class);Root<Area>area=criteriaQuery.from(Area.class);criteriaQuery.where(builder.equal(area.get("descricao"),builder.parameter(String.class,"descricao")));TypedQuerytq=em.createQuery(criteriaQuery);tq.setParameter("descricao","teste");}}
e o erro:
run:
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl@1f48262
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/WinXP/GlassFish_Server/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/WinXP/GlassFish_Server/glassfish/modules/bean-validator.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
07/03/2012 17:50:46 org.hibernate.validator.util.Version
INFO: Hibernate Validator bean-validator-3.0-JBoss-4.0.2
07/03/2012 17:50:47 org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
[EL Info]: 2012-03-07 17:50:47.218--ServerSession(13986615)--EclipseLink, version: Eclipse Persistence Services - 2.0.1.v20100213-r6600
07/03/2012 17:50:54 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
07/03/2012 17:51:07 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
GRAVE: rardeployment.class_not_found
07/03/2012 17:51:07 com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter
GRAVE:
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:104)
at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:216)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:349)
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:472)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:437)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:569)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:110)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:369)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
at teste.NewClass.main(NewClass.java:47)
Caused by: java.lang.ClassNotFoundException: com.sun.gjc.spi.ResourceAdapter
[EL Severe]: 2012-03-07 17:51:08.609--ServerSession(13986615)--Local Exception Stack:
Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [biblioteca].
Internal Exception: javax.naming.NamingException: Lookup failed for 'biblioteca' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:451)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:116)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:96)
... 18 more
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [biblioteca].
Internal Exception: javax.naming.NamingException: Lookup failed for 'biblioteca' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:397)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
at teste.NewClass.main(NewClass.java:47)
Caused by: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [biblioteca].
Internal Exception: javax.naming.NamingException: Lookup failed for 'biblioteca' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:451)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:116)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
at teste.NewClass.main(NewClass.java:47)
Caused by: javax.naming.NamingException: Lookup failed for 'biblioteca' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:569)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:110)
... 9 more
Caused by: javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:111)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:472)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:437)
... 12 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:104)
at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:216)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:349)
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108)
... 15 more
Caused by: java.lang.ClassNotFoundException: com.sun.gjc.spi.ResourceAdapter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:369)
... 4 more
Caused by: javax.naming.NamingException: Lookup failed for 'biblioteca' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:569)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:110)
... 9 more
Caused by: javax.naming.NamingException: Failed to look up ConnectorDescriptor from JNDI [Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR]
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:111)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:472)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:437)
... 12 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:96)
... 18 more
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:104)
at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:216)
at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:349)
at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108)
... 15 more
Caused by: java.lang.ClassNotFoundException: com.sun.gjc.spi.ResourceAdapter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:96)
... 18 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 38 segundos)
como podem perceber o EntityManager fica vazio não sei por que
alguém tem alguma luz?
Hebert_Coelho
Em nenhum momento você abriu conexão com o banco de dados. [=