No Persistence provider for EntityManager named ASN [RESOLVIDO]
16 respostas
R
Ricardo_Prado
Olá pessoal,
Estou aprendendo a usar o JPA hoje e não estou conseguindo fazer nada, de jeito nenhum. Eu criei minhas entidades e quando fui criar a classe de testes, deu pau!
Eu criei o persistense.xml pelo Netbeans e mesmo assim dá esse problema!
Vc adicionou as bibliotecas do EclipseLink do seu projeto?
Seu exemplo é uma aplicação Web ou Desktop? Se for Web vc está criando o EntityManager da maneira errado e se for Desktop seu persistence.xml é q está errado.
Z
zoren
Você colocou o persistence.xml dentro da pasta WEB-INF?
D
dev.rafael
Desculpe zoren mas é bem claro, com esse método main q a aplicação é desktop e portanto ñ existem WEB-INF. Na verdade mesmo q existisse um WEB-INF, o persistence.xml ñ ficaria ali.
Z
zoren
Quando vc usa o JPA no desktop
vc tem q ter um pacote chamado WEB-INF e colocar ele lá dentro.
Caso você queira que ele mapeie automaticamente.
Edit:
Opa, errei o nome, é META-INF
R
Ricardo_Prado
Tem o eclipselink.jar e tem também o javax.persistense 2 alguma coisa .jar.
É uma aplicação WEB sim! Como fazer?
R
Ricardo_Prado
Troquei a versão do jar e agora está dando outro erro:
Exception in thread "main" Local Exception Stack:
Exception [EclipseLink-30005] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: sun.misc.Launcher$AppClassLoader@553f5d07
Internal Exception: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [ASN] failed.
Internal Exception: Exception [EclipseLink-7154] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [asnUsuarios] in entity class [class TabelasDoBanco.Usuario] has a mappedBy value of [idAsn] which does not exist in its owning entity class [class TabelasDoBanco.ASNUsuarios]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:126)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:136)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:65)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at NewMain.main(NewMain.java:20)
Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [ASN] failed.
Internal Exception: Exception [EclipseLink-7154] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [asnUsuarios] in entity class [class TabelasDoBanco.Usuario] has a mappedBy value of [idAsn] which does not exist in its owning entity class [class TabelasDoBanco.ASNUsuarios]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1005)
at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:88)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:127)
... 4 more
Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit [ASN] failed.
Internal Exception: Exception [EclipseLink-7154] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [asnUsuarios] in entity class [class TabelasDoBanco.Usuario] has a mappedBy value of [idAsn] which does not exist in its owning entity class [class TabelasDoBanco.ASNUsuarios]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
at org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:210)
... 7 more
Caused by: Exception [EclipseLink-7154] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [asnUsuarios] in entity class [class TabelasDoBanco.Usuario] has a mappedBy value of [idAsn] which does not exist in its owning entity class [class TabelasDoBanco.ASNUsuarios]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
at org.eclipse.persistence.exceptions.ValidationException.noMappedByAttributeFound(ValidationException.java:1344)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.RelationshipAccessor.getOwningMapping(RelationshipAccessor.java:385)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.OneToManyAccessor.processOneToManyMapping(OneToManyAccessor.java:180)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.OneToManyAccessor.process(OneToManyAccessor.java:123)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.RelationshipAccessor.processRelationship(RelationshipAccessor.java:625)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processRelationshipAccessors(MetadataProject.java:1273)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage3(MetadataProject.java:1562)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:475)
at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:441)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:959)
... 6 more
Java Result: 1
D
dev.rafael
O diretório é o META-INF em aplicações desktop. E em projetos WEB o diretório é WEB -INF/classes/META-INF.
R
Ricardo_Prado
Estou iniciando com JPA agora então estou meio perdido.
Vou colocar as minhas entidades aqui(sem getters e setters pra ficar menor). Eu sou completamente novo(comecei hoje) com JPA. Estou dando umas estudadas mas meu chefe não para de me cobrar :(
Como pode ser uma aplicação WEB com um método main? Q framework é esse q vc está utilizando?
R
Ricardo_Prado
Aquilo é uma classe de testes.
Agora ele diz que não consegue acessar o datasource. Até imagino porque, já que estou rodando uma classe de forma “desktop”, acho que ele não está conseguindo fazer o lookup na arvore jndi
Z
zoren
Não é isso, era pra funcionar normal se o servidor estivesse rodando
Deposi que você trocou a versão deu o erro:
The attribute [asnUsuarios] in entity class [class TabelasDoBanco.Usuario] has a mappedBy value of [idAsn] which does not exist in its owning entity class [class TabelasDoBanco.ASNUsuarios]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
Parece qeu o mapeamento está errado
Você pode mapear todos os campos no persistence.xml, o netbeans cria um datasource para colocar lá
D
dev.rafael
vc ñ pode usar datasources quando rodando projetos a partir de aplicações desktop. P/ Desktop as configurações são um pouco diferentes.
R
Ricardo_Prado
Todos meus problemas foram resolvidos graças a vocês.
muito obrigado mesmo!
-> Eu realmente tinha errado o mapeamento (era idUsuario inves de idAsn)
->O que estava errado era o jar que eu estava colocando (este que causou o abrimento do tópico)