GARANTIR DESCONTO

Fórum defalut schema postgresql glassfish netbeans JPA #411026

27/12/2011

0

Boa noite!
É o seguinte, eu desenvolvia aplicações web utilizando o eclipse, tomcat como servidor, para banco de dados usava postgresql e para mapeamento eu utilizava Hibernate puro(sem JPA) e fazia todo o mapeamento através de arquivos xml. Agora estou fazendo os cursos de videoaulas, exemplos, etc., aqui do Devmedia utilizando Netbeans IDE, servidor glassfish, para mapeamento estou utilizando JPA2(Eclipselink) assim como nos exemplos, a única diferença é que continuo utilizando postgresql, ao invés do derby.
Os exemplos que eu faço funcionam normalmente, as tabelas são geradas no banco de dados, porém elas são geradas no schema public e não no schema que eu quero. Quando eu utilizava Hibernate puro, eu colocava no hibernate.cfg.xml a propriedade <property name=hibernate.default_schema>ecommerce</property>, e ele passava a utilizar o schema indicado. Agora utilizando JPA(Eclipselink) e glassfish não sei como faço. No persistence.xml só existe uma propriedade, que é <property name=eclipselink.ddl-generation value=create-tables/>. No glassfish-resources.xml que é onde tem as propriedades de configuração parecidas com as do hibernate.cfg.xml, tentei colocar alguns nomes de propriedades parecidos com o default_schema do hibernate.cfg.xml, coloquei defaultSchema, Schema, mas nada funcionou, e o programa continua criando as tabelas no schema public.

Alguém aí sabe como escolho o esquema default ou padrão utilizando postgresql, JPA2(Eclipselink), glassfish e netbeans?
Robson Silva

Robson Silva

Responder

Posts

28/12/2011

Robson Teixeira

Sugiro você pesquisar sobre as propriedades de configuração do eclipseLink para poder escolher o esquema do banco na qual você deseja trabalhar.Segue alguns links uteis

http://www.eclipse.org/eclipselink/

http://www.vogella.de/articles/JavaPersistenceAPI/article.html

http://www.guj.com.br/java/115493-jpa-implementations-comparison-hibernate-toplink-essentials-openjpa-eclipselink

http://refcardz.dzone.com/refcardz/eclipselink-jpa

a priore sugiro o primeiro link pois é a fonte de onde surgiu esse FrammeWork.

espero ter ajudado
att
robson
Responder

Gostei + 0

28/12/2011

Davi Costa

Se vc estiver suando annotations pode usar nas tabelas:

@Table(schema=seuSchema)

Vc pode dar um a olhada aki tb:
http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29

at Davi
Responder

Gostei + 0

28/12/2011

Robson Silva

Se vc estiver suando annotations pode usar nas tabelas:

@Table(schema=seuSchema)

Vc pode dar um a olhada aki tb:
http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29

at Davi


A anotação

@Table(schema=meuSchema)

Deu certo para as minhas entidades, porém para as classes ENUM ele continua criando as tabelas no schema public.

Creio que essa propriedade que eu estou procurando não deve ser do eclipselink, uma vez que não tem nenhum arquivo relacionado ao eclipselink, creio que deva ser uma propriedade que deva ser inserida no persistence.xml ou no glassfish-resources.xml, uma vez q mesmo quando eu uso JPA2(hibernate) a aplicação não usa o hibernate.cfg.xml como acontece quando se usa o hibernate puro. Então tem q ser alguma coisa mais relacionada ao JPA ou glassfish, consultando a documentação do eclipslink não achei nada relacionado.
Responder

Gostei + 0

29/12/2011

Robson Silva

Descobri que deve-se criar um arquivo orm.xml e nele colocar

<schema>MeuEsquema</schema>

e no persistence.xml colocar

<mapping-file>orm.xml</mapping-file>

fiz isso, só que quando vou executar aparece o seguinte erro

Exception [EclipseLink-7253] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.ValidationException
Exception Description: There is no mapping file called [orm.xml] in classpath for persistence unit named [SisContrAm-ejbPU].

já coloquei esse arquivo orm.xml em todo lugar, e mesmo assim não funciona. Alguém sabe como resolver?
Responder

Gostei + 0

29/12/2011

Robson Silva

Descobri que deve-se criar um arquivo orm.xml e nele colocar

<schema>MeuEsquema</schema>

e no persistence.xml colocar

<mapping-file>orm.xml</mapping-file>

fiz isso, só que quando vou executar aparece o seguinte erro

Exception [EclipseLink-7253] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.ValidationException
Exception Description: There is no mapping file called [orm.xml] in classpath for persistence unit named [SisContrAm-ejbPU].

já coloquei esse arquivo orm.xml em todo lugar, e mesmo assim não funciona. Alguém sabe como resolver?


Consegui fazer funcionar, simplesmente tirei a linha

<mapping-file>orm.xml</mapping-file>

e funcionou perfeitamente!
Responder

Gostei + 0

02/01/2012

Davi Costa

Show de bola Robson, muito boa a sua iniciativa de postar sua solução! Assim que possível, favor fechar o chamado.

att Davi
Responder

Gostei + 0

02/01/2012

Robson Silva

Show de bola Robson, muito boa a sua iniciativa de postar sua solução! Assim que possível, favor fechar o chamado.

att Davi


Como faço pra fechar?
Responder

Gostei + 0

02/01/2012

Davi Costa

Senão me engano tem uma opção na parte de cima do chamado.

att Davi
Responder

Gostei + 0

09/01/2012

Dyego Carmo

Muito bom !

Problema resolvido ? Poderia fechar o chamado ?

Obrigadao !!!
Responder

Gostei + 0

09/01/2012

Robson Silva

Até agora não consegui descobrir como fecha o chamado
Responder

Gostei + 0

10/01/2012

Davi Costa

Achei isso em um outro post:
...quando alguem responde o seu chamado, uma janela é aberta e pergunta se a resposta dada resolveu o problema. quando vc responder sim, o chamado é fechado.

att Davi
Responder

Gostei + 0

11/01/2012

Robson Silva

Pra mim nunca apareceu essa janela
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar