| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 12:15:03
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Olá Pessoal, não estou conseguindo gerar uma tabela a partir do JPA/hibernate.
Esse é o meu persistence.xml:
Esse é minha entidade que representa a tabela no banco de dados:
E aqui, a minha classe responsável por gerar o banco:
Já tenho o esquema meubanco criado direitinho. Quando executo o programa nenhuma exception é gerada porém o a tabela também não é gerada.
Vejam o log gerado:
É óbvio que eu posso construir a tabela na mão, e até fiz isso e criei uma classe de teste para inserir um registro e funcionou perfeitamente. Vejam a classe de teste:
A verdade é que eu fiquei intrigado por não ter conseguido gerar a tabela a partir da classe GeraTabela.java. Alguem poderia me responder porque não estou conseguindo gerar essas tabelas automaticamente pelo JPA/Hibernate?
This message was edited 1 time. Last update was at 13/02/2012 12:57:12
|
Sgt Reginaldo |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 12:26:51
|
Aleksandro
JavaChild
Membro desde: 14/04/2005 15:02:57
Mensagens: 119
Localização: São Bernardo do Campo
Offline
|
No arquivo persistence.xml você deve substituir
por
[code]<property name="hibernate.hbm2dll.auto" value="create" />
Flw....
|
http://br.linkedin.com/in/aleksandrolemosmartins |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 12:29:21
|
Aleksandro
JavaChild
Membro desde: 14/04/2005 15:02:57
Mensagens: 119
Localização: São Bernardo do Campo
Offline
|
No arquivo persistence.xml você deve substituir
por
Flw...
|
http://br.linkedin.com/in/aleksandrolemosmartins |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 13:07:02
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4194
Online
|
Aleksandro wrote:No arquivo persistence.xml você deve substituir
por
Flw...
Eu não creio que o problema seja esse, pois o update tb faz create a primeira vez que você roda a aplicação e não existe as tabelas.
Vc criou o database no banco de dados?
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2012 13:55:23
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Eu usei tanto o valor create, quanto update e create-drop, mas não obtive sucesso. Eu criei o banco normalmente. Como vocês podem ver na classe de teste para inserção, consigo inserir normalmente depois que crio a tabela manualmente. Agradeço a atenção.
|
Sgt Reginaldo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2012 13:58:56
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4194
Online
|
Se você está utilizando apenas o JPA você nem precisaria dessa configuração: <class>modelo.Usuario</class>
Dá uma olhada nesse post, ele mostra o passo a passo para que o JPA crie a tabela para você: Hibernate 3 com JPA 2.
Vc pode ter pulado alguma etapa boba.
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2012 15:23:09
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Tentei sem o <class>modelo.Usuario</class> também, no desepero resolvi colocar. Mas tudo bem vou dar uma olhadinha no link. Obrigado.
|
Sgt Reginaldo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2012 19:58:55
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Caro JakeFrog,
O Exemplo citado no link também não gera a tabela automaticamente. O exemplo funciona já com a tabela criada no SQL. O que eu estou querendo saber é como fazer para gerar a tabela do banco a partir das configurações do JPA sem precisar escrever SQL para criação do banco. Obrigado.
|
Sgt Reginaldo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2012 22:15:30
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4194
Online
|
dgp_reginaldo wrote:Caro JakeFrog,
O Exemplo citado no link também não gera a tabela automaticamente. O exemplo funciona já com a tabela criada no SQL. O que eu estou querendo saber é como fazer para gerar a tabela do banco a partir das configurações do JPA sem precisar escrever SQL para criação do banco. Obrigado.
Eu acho que você entendeu errado.
No exemplo, é criado o database. O JPA não cria o database apenas as tabelas. Repare no post que você não vai ver nenhum comando create table, apenas created database.
O exemplo sim, gera automaticamente a tabela e explica como funciona essa opção:
"hibernate.hbm2ddl.auto" com essa opção ativada, o Hibernate atualizará suas tabelas quando necessário. Por exemplo, se a tabela não existir ela irá criar ("CREATE TABLE..."), se você adicionou uma coluna ("ALTER TABLE.."). Para testes vou deixar ativo, mas não aconselho a deixar essa opção ativada quando se trata de uma aplicação real. Não é uma boa escolha deixar essa alteração acontecer de modo automático em uma aplicação real. Deixe-a ativa apenas para teste local ou estudo.
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2012 22:25:05
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Eu entendi perfeitamente o exemplo. Criei o database e deixei o resto com a JPA. Veja o que deu:
Ele não gerou a tabela o que ocasionou essa exception aí quando executei a classe Main. Fiz tudo conforme seu tutorial. Vou continuar tentando. Obrigado!
|
Sgt Reginaldo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2012 22:28:54
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4194
Online
|
Só não entendi o pq dessa mensagem: "Table 'hello.user' doesn't exist " Pq hello e . e user? Só não precisa colocar o nome da tabela? Como que você anotou sua classe depois das alterações?
This message was edited 1 time. Last update was at 11/02/2012 22:29:26
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/02/2012 08:28:44
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
A classe está anotada exatamente assim:
Uma observação importante é que no tutorial você pede para criar o database hello com o camando e lá na propriedade de URL do Banco no persistence.xml você passa . Um hello escrito com "h" minusculo e outro "H" maiusculo. Eu deixei o database tudo com "h" minusculo. A unidade de persistencia deixei como estava mesmo: Hello com "H" maiusculo. OK?
Outra observação importante é que se eu crio a tabela user via SQL mesmo então a classe Main executa normalmente fazendo a inserção naturalmente.
Aqui vai o meu persistence.xml
Por fim a classe Main:
This message was edited 1 time. Last update was at 12/02/2012 08:39:31
|
Sgt Reginaldo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/02/2012 12:06:27
|
robson_costa
Debugger
![[Avatar]](/images/avatar/3926f109da8ae7c7e2f25ef5c9de4306.png)
Membro desde: 27/12/2007 17:40:46
Mensagens: 62
Localização: São Paulo - SP
Offline
|
o nome da propriedade do hibernate está escrito errado, no lugar de:
<property name="hibernate.hbm2dll.auto" value="update" /> troque por
<property name="hibernate.hbm2ddl.auto" value="update" />
|
"It's not who you are underneath, it's what you do that defines you"
Rachel Dowes <- Batman Begins -> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/02/2012 12:48:47
|
dgp_reginaldo
Thread.start()
![[Avatar]](/images/avatar/71e36490e3f376df4ac0215c64bfc273.jpg)
Membro desde: 18/08/2009 16:35:20
Mensagens: 34
Localização: Brasília
Offline
|
Realmente o problema estava no nome da propriedade do hibernate que estava escrito errado. Não é dll é ddl (Data Definition Language), dll são as malditas bibliotecas no Ruindows..nada a ver eu ter trocado um pelo o outro..rsrs.. Foi uma desatenção minha. Agradeço a todos que mobilizaram-se para tentar me ajudar em especial o amigo jakeFrog e o Robson_Costa que observou bem onde eu estava errando. Resolvido
This message was edited 1 time. Last update was at 13/02/2012 12:49:43
|
Sgt Reginaldo |
|
|
 |
|
|
|
|