defalut schema postgresql glassfish netbeans JPA
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?
É 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
Curtidas 0
Respostas
Robson Teixeira
27/12/2011
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
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
GOSTEI 0
Davi Costa
27/12/2011
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
@Table(schema=seuSchema)
Vc pode dar um a olhada aki tb:
http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29
at Davi
GOSTEI 0
Robson Silva
27/12/2011
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
@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.
GOSTEI 0
Robson Silva
27/12/2011
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?
<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?
GOSTEI 0
Robson Silva
27/12/2011
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?
<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!
GOSTEI 0
Davi Costa
27/12/2011
Show de bola Robson, muito boa a sua iniciativa de postar sua solução! Assim que possível, favor fechar o chamado.
att Davi
att Davi
GOSTEI 0
Robson Silva
27/12/2011
Show de bola Robson, muito boa a sua iniciativa de postar sua solução! Assim que possível, favor fechar o chamado.
att Davi
att Davi
Como faço pra fechar?
GOSTEI 0
Davi Costa
27/12/2011
Senão me engano tem uma opção na parte de cima do chamado.
att Davi
att Davi
GOSTEI 0
Dyego Carmo
27/12/2011
Muito bom !
Problema resolvido ? Poderia fechar o chamado ?
Obrigadao !!!
Problema resolvido ? Poderia fechar o chamado ?
Obrigadao !!!
GOSTEI 0
Robson Silva
27/12/2011
Até agora não consegui descobrir como fecha o chamado
GOSTEI 0
Davi Costa
27/12/2011
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
...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
GOSTEI 0
Robson Silva
27/12/2011
Pra mim nunca apareceu essa janela
GOSTEI 0