Recriar tabelas com NetBeans e JPA2

Pessoal, tenho um sistema onde eu trabalho que possui uma tabela com o nome da coluna errado.

Era para ser [color=green]ID_EMPRESA[/color], porém está [color=red]ID_EMRESA[/color].

Eu alterei o persistence.xml

para

mas o netbeans não permite isso e ele altera para

E ao roda o sistema ele não faz as minhas alterações.

Gostaria de saber como faço para o NetBeans 7.2.1 apagar todas as tabelas e criá-las novamente???

SGBD: SqlServer2008

Cara, pelo amor de Deus, cuidado com o create, create-drop e etc, isso ai vai apagar tudo do teu banco mano.

Uma dica ? não é só uma coluna ? Faz na mão uai:

ALTER TABLE empresa RENAME id_emresa  TO id_empresa;

Dependendo do banco o sql muda, mas é por ai.

Melhor do que ficar mexendo no banco todo, depois so muda nas classes java.

Flw!!

Não seria

<property name="hibernate.hbm2ddl.auto" value="create-drop"/> ???

De qualquer forma as duas maneiras não funcionam!!!

Agradeço a ajuda!

O erro que dá é esse:

Caused by: org.hibernate.MappingException: Unable to find column with logical name: ID_EMRESA in org.hibernate.mapping.Table(GESTOR.dbo.TB_EMPRESA) and its related supertables and secondary tables

Mano, é exatamente o que eu quero. Apgar tudo e criar de novo.

O sistema ainda está em desenvolvimento. Eu peguei ele em andamento.

Eu não quero usar o comando SQL, pois quero aprender a fazer isso no NetBeans. No eclipse é só mudar para create, mas no netbeans é tudo mais burocrático!

Aaaaaa taaa…entao ta bom :slight_smile:

Tipo, esse erro:

Caused by: org.hibernate.MappingException: Unable to find column with logical name: ID_EMRESA in org.hibernate.mapping.Table(GESTOR.dbo.TB_EMPRESA) and its related supertables and secondary tables

Significa dizer que o hibernate nao esta encontrando o atributo ID_EMRESA, no squema tal na tabela tal… verifica se ele ja nao mudou la no seu banco =D

[quote=Edison Martins]Pessoal, tenho um sistema onde eu trabalho que possui uma tabela com o nome da coluna errado.

Era para ser [color=green]ID_EMPRESA[/color], porém está [color=red]ID_EMRESA[/color].

Eu alterei o persistence.xml

para

mas o netbeans não permite isso e ele altera para

E ao roda o sistema ele não faz as minhas alterações.

Gostaria de saber como faço para o NetBeans 7.2.1 apagar todas as tabelas e criá-las novamente???

SGBD: SqlServer2008

[/quote]

Como assim o Netbeans nao deixa alterar ? Ele deixa voce mudar a string e salvar pelo menos ? ou nem mexer nas palavras ele deixa ?

[quote=rof20004]Aaaaaa taaa…entao ta bom :slight_smile:

Tipo, esse erro:

Caused by: org.hibernate.MappingException: Unable to find column with logical name: ID_EMRESA in org.hibernate.mapping.Table(GESTOR.dbo.TB_EMPRESA) and its related supertables and secondary tables

Significa dizer que o hibernate nao esta encontrando o atributo ID_EMRESA, no squema tal na tabela tal… verifica se ele ja nao mudou la no seu banco =D[/quote]

No banco está ID_EMRESA. O hibernate não mudou não.

Netbeans deixa eu alterar as classes normalmente, mas ele não faz as alterações no banco.

Eu modifiquei o campo [color=red]ID_EMRESA[/color] para [color=green]ID_EMPRESA[/color], mas no banco continua [color=red]ID_EMRESA[/color].

To falando do XML , pelo que voce falou ele nao permite voce alterar o XML, é isso mesmo ?

[code]<?xml version="1.0" encoding="UTF-8"?>

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>
<properties>
  <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
  <property name="hibernate.show_sql" value="true"/>
  <property name="hibernate.format_sql" value="true"/>
  <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=GESTOR"/>
  <property name="javax.persistence.jdbc.password" value="******"/>
  <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  <property name="javax.persistence.jdbc.user" value="sa"/>
  <property name="javax.persistence.jdbc.show_sql" value="true"/>
  <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
[/code]

Ele permite, mas o netbeans possui a guia DESIGN que é uma interface para o persistence.xml. E eu não entendo muito desse DESIGN. E vou direto para o código-fonte, porém o auto-complete do

não mostra a opção create, apenas create-drop.

Certo, mas da pra mudar entao ne ? So isso que quero saber, porque nunca aconteceu isso comigo ao usar o netbeans.

Dá sim, mas ao executar o sistema ele não faz as alterações como é no Eclipse.

hummm, poste seu persistence.xml todo ? nao se esqueça e apagar os dados confidenciais. Outra coisa, qual hibernate voce ta usando ? Outra coisa, o usuario que voce esta usando no persistence para acessar o banco, TEM ACESSO a escrita ? ainda tem essa, hehehehehe =D

[code]<?xml version="1.0" encoding="UTF-8"?>

<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.managedBean.ProjetoBean</class>
<class>br.com.entity.TbContrato</class>
<class>br.com.entity.TbOrdemServico</class>
<class>br.com.entity.TbUsuario</class>
<class>br.com.entity.TbProjeto</class>
<class>br.com.entity.TbTipoDocumento</class>
<class>br.com.entity.TbDocumentoOs</class>
<class>br.com.entity.TbEmpresa</class>
<class>br.com.entity.TbUnidadeMetrica</class>
<class>br.com.entity.TbTipoFiscal</class>
<class>br.com.entity.TbClassificacaoSolicitacao</class>
<class>br.com.entity.TbInformacoesFinanceiras</class>
<class>br.com.entity.TbNotaFiscal</class>
<class>br.com.entity.TbFiscais</class>
<class>br.com.entity.TbPontoFuncao</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>
<properties>
  <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
  <property name="hibernate.show_sql" value="true"/>
  <property name="hibernate.format_sql" value="true"/>
  <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=GESTOR"/>
  <property name="javax.persistence.jdbc.password" value="******"/>
  <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  <property name="javax.persistence.jdbc.user" value="sa"/>
  <property name="javax.persistence.jdbc.show_sql" value="true"/>
  <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
[/code]

hibernate 4.1.8

Usuário “SA” que é o padrão do sqlServer2008 - Include e Update funcionando normalmente.

Estou investigando se ele pode dropar e criar tabelas.

ta, sei que voce ja testou, mas corrige isso:

o certo o é create-drop

Cara, entao vou da uma pesquisada aqui.

Outra coisa, nao aparece nada no log nao (console do servidor)? deve ter alguma coisa la que ajude.

Caused by: org.hibernate.MappingException: Unable to find column with logical name: ID_EMRESA in org.hibernate.mapping.Table(GESTOR.dbo.TB_EMPRESA) and its related supertables and secondary tables at org.hibernate.cfg.Ejb3JoinColumn.checkReferencedColumnsType(Ejb3JoinColumn.java:552) at org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:257) at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:116) at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1525) at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1446) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1351) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737) at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)

Isso ai é a mensagem que diz que nao foi encontrado ID_EMRESA nas classes, se voce voltar ao nome errado funciona certo ? to achando que isso ai que tu ta passando é erro de permissao no banco cara, sério, que coisa estranha.