Ola pessoal tudo bem? Estou tentando fazer a persistencia usando o JPA e ja tentei diversas formas e nao consigo, sempre lanca uma excepcao dizendo que a minha classe nao foi encontrada. Por favor quem puder me ajude, ABRACOS.
você precisa adicionar no seu projeto uma biblioteca chamada Jandex, eu uso jandex2.0.4. Acabei de fazer o teste com de outra pessoa e era esse o problema.
A
Ailson_Delgado
Obrigado amigo, vou baixar entao, abracos.
A
Ailson_Delgado
Pesquisei como fazer a persistencia e vi que ha duas formas, um com session factory e outro com entitymanagerfactory, a fabrica de coneccao era totalmente diferente podi me explicar a diferenca?
Ja consigue amigao voce me salvou haha abracos:ok_hand:
A
Ailson_Delgado
@Heitor_Veloso cara desculpa ai, da outra vez eu consigue criar a tabela no banco, o problema agora e que esta dando um outro erro, da uma olha por favor
coloca aqui para eu ver a classe JPAUtil, pois pelo erro apresentado parece ser algo nela, por exemplo se você tiver fechado a conexão ele não vai conseguir achar nada na linha abaixo.
pois o que eu entendi vendo a sua classe JPAUtil você não chamava o “Persistence.createEntityManagerFactory(“JPAPU”);” antes de chamar o metodo que retorna o EntityManager.
Em relação ao none do xml está parcialmente correto, pois o certo é colocar no xml além de deixar em none o seguinte
Estou baseando em algumas apostilas e todos mostran da mesma forma e nenhum esta funcionando
H
Heitor_Veloso
no seu main acho que não há a necessidade do EntityTransaction tx, comenta a linha dele, depois muda tx.commit(); para em.commit(); e por fim troca JPAUtil.close(); para conexao.close(); Depois que fizer isso, continuando o erro da um novo print nele para eu ver onde está dando o erro.
A
Ailson_Delgado
Entao em.getTransaction( ).commit( ); porque o entitymanager so tem esse.
em.commit nao aparece.
OBS:EU FIZ USANDO O HIBERNATE SEM ESPECIFICACAO DO JPA E FUNCIONOU TUDO, JA COM O JPA NAO FUNCIONA E NAO ENTENDO.
H
Heitor_Veloso
você está certo, me passa seu código todo que olha para você é só aqui no comentario uilizar a tag </> para colocar seu código, pois por imagem fica bem mais dificil até copiar tudo. Aqui não da para eu ver qual é a linha 27 da classe JPAUtil, pois apenas ela está sem a numeração, pode ser problema de ter posto o static, ou pode ser outro, pode ser até no mapeamento de veículo. Pois comparei o seu código com o meu e nas coisas que você postou não estou vendo diferenças.
olhei no banco de dados e inseriu. Confere para mim se você tem 3 bibliotecas no seu projeto (jandex 2.0.4, Hibernate4.3x(JPA2.1) e diver JDBC do MySQL) e se você criou anteriormente o database no banco de dados, por exemplo eu usei <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/teste1"/> no persistence.xml, dei o nome da database de teste1.
H
Heitor_Veloso
o que coloquei no arquivo persistence.xml abaixo, lembrando de trocar os asteristicos em senha para a sua senha do banco de dados:
Usei estas bibliotecas acima.
Sera que o meu net beans presica de algum plugin?
Baixei ate a ultima versao do hibernate e na funcionou?
H
Heitor_Veloso1 like
Você está usando o JSP e testando como se fosse Java SE, provavelmente esse pode ser um possível erro, se quer testar se vai dar certo a inserção do hibernate te recomendo ir em arquivo->novo projeto->Java->aplicação Java. Depois só você passar seus pacotes para a nova aplicação.
@Heitor_Veloso Cara ja funcionou consegue fazer a persistencia, fiz como disseste criei novo projecto SE porque eu estava usando o java web.
Eu achei que nao tinha nenhum problema usar o java web porque eu estava rodando a classe main e nao o servidor de aplicacao.
H
Heitor_Veloso
Usar hibernate na aplicação web é bem diferente é criado ao inves de arquivo xml um .cfg, recomendo procurar um exemplo na internet de como fazer. Todo o processo é totalmente diferente.
F
Fabioreis14151 like
Você está usando o maven?, pode ser que esteja acontecendo conflito de bibliotecas, pesquise todas essa libs são compativeis entre a versão do hibernate, isso é bem comum de acontecer, eu sugiro usar o maven para gerenciar suas libs
D
darlan_machado
Não creio que seja conflito.
O persistence.xml, aparentemente, está ok, se você tivesse a propriedade hbm2ddl.auto setada como create ou create-drop, até concordo que tentaria recriar, mas, como está, não justifica.
A
Ailson_Delgado
Achei que seria tudo de mesma forma, que era basta usar o arquivo .xml que funcionava tanto para web como para aplicacao desktop
A
Ailson_Delgado
Sim eu tinha hbm2ddl todo configurado com o create.
A
Ailson_Delgado
O meu foco e rodar hibernate juntamente com o servidor de aplicacao ou seja criar e gerenciar dados atravez do servidor de aplicacao, usando o maven eu nao tenho necessidade de usar o arquivo .xml e .cfg?
A
Ailson_Delgado
Pessoal agora precisso gerar a tabela quando rodar o servidor de aplicacao como wildfly, ja tenho o meu tudo configurado, qual o caminho devo comecar?
D
darlan_machado
Eu sugiro alterar o hbm2ddl.auto para update, assim, ele só irá criar as tabelas uma única vez. Nas demais, verificará alterações (adição de colunas, tabelas, etc) e nunca removerá tabelas já criadas.
H
Heitor_Veloso1 like
Tem muito tempo que não uso java WEB, pois foi somente no aprendizado nos tempos de faculdade que usei, eu lembro que para o hibernate igual a de aplicação desktop quando fiz tive que fazer algumas gambiarras, depois com meu professor ele ensinou o jeito correto em aplicação WEB que criava esse arquivo cfg. Não lembro exatamente como cria, mas do mesmo modo que tem o criar o arquivo persistence.xml quando você no netbeans usa bibliotecas do hibernate para criar, também tem com o cfg. Em um programa antigo que tenho aqui fiz o teste e funcionou.
D
darlan_machado1 like
Faz muito tempo que os xmls do hibernate podem ser deixados de lado e se usar, apenas, anotações (exceto quando está se utilizando JPA, aí você é obrigado a ter o persistence.xml).
A
Ailson_Delgado
Pessoal qual a melhor forma para eu comecar a programar para web com java.
USAR ESPECIFICACAO DE JAVA WEB OU SPRING BOOT.
NAO SEI SE ESTOU ATUALIZADO SOBRE DESENVOLVIMENTO WEB COM JAVA, QUAL DOS DOIS DEVERIA ADOTAR?
F
Fabioreis14151 like
Se tiver começando, melhor usar servlet puro no backend e ir se adaptando a tecnologia, depois spring boot(spring boot não é framework web) com spring mvc seria uma boa ideia.
A
Ailson_Delgado
Comecei usando o servlet puro para entender os principais conceitos, e agora uso o JSF, entao devo adotar o Spring MVC?
D
darlan_machado1 like
Se você se refere a passar com o objetivo de estudar, é uma boa opção.