OLá, o persistence.xml deve estar no raiz do projeto…
detalhe …
vc usa eclipse? se sim é mais fácil… fazer o seguinte…
trabalhe com 2 projetos, para a parte web(dynamic web project) e outro para os dados, crie um projeto como um módulo de dados, nele voce vai ter somente os jars do hibernate e seus beans, de domínio…
com isso se voce precisar escrever uma aplicação desktop(swing) ou pra celular, ou sei lá testar outra tecnologia na camada de apresentação é mais fácil implementar…
o seu projeto de dados não fica acoplado ao projeto web, na verdade o projeto web que será dependente do projeto de dados, e voce pode criar novos projetos todods dependentes do seu projeto de dados com o hibernate…
rod
toncarvalho:
So uma correcao o persistence.xml deve estar na pasta META-INF dentro da raiz da pasta de fontes (source) do projeto.
dahenz:
como voce nao especificou se esta usando hibernante , toplink ou outro. Entao vou colocar aqui o parametro para hibernate e toplink, com isso seu DB é criado no start da sua aplicacao.
hibernate =
toplink =
gilmarcand
Estou tentando, mas traz um erro dizendo que meu persistence.xml tem que estar no classpath…
P.S.: Criei o persistence.xml dentro da pasta META-INF
No Eclipse, a pasta META-INF com o arquivo persistence.xml deve ficar dentro da pasta src.
Se você está falando em gerar o banco de dados através do mapeamento das classes, você precisa indicar ao seu framework ORM para fazer isto. Se estiver usando o Hibernate, no seu arquivo persistence.xml deve conter o property
as outras opções de value são: update, create-drop, validate.
dahenz
Moçada!! Consegui!!! Fiz o que falaram, criei uma pasta META-INF dentro src e executei um metodo main dentro de um dinamyc project web mesmo!!
Valew…
gilmarcand
Beleza cara, mas já que é uma aplicação web, você pode criar um ServletContextListener para iniciar isto ao invés de executar um método main. Crie uma classe assim:
publicclassServletListenerimplementsjavax.servlet.ServletContextListener{publicvoidcontextInitialized(ServletContextEventarg0){System.out.println("Contexto está sendo inicializado....");// Aqui você pode inicializar o processo da JPA e outras coisas mais.}publicvoidcontextDestroyed(ServletContextEventarg0){System.out.println("Contexto está sendo destruido....");// Aqui você pode destruir a(s) EntityManagerFactory da aplicação e fazer outras coisa que queira...}}
Agora me diz… é possível criar triggers dessa forma???
Obrigado Gilmar…
gilmarcand
Se o que você quer dizer com criar triggers é monitorar a aplicação para quando um evento for disparado você fazer alguma tarefa, então a resposta é sim. Um listener é um “ouvinte” que fica ali esperando algum evento acontecer. A API dos servlets permite criar listeners para eventos em várias situações:
Para Eventos de Contexto: ServletContextListener e ServletContextAttributeListener
Para Eventos de Sessão: HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener e HttpSessionBindingListener
Para Eventos de Requisição: ServletRequestListener e ServletRequestAttributeListener
Dá uma estudada nesta API que o limite está entre a tua imaginação e o céu.