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…
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.
[quote]
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[/quote]
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
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:
public class ServletListener implements javax.servlet.ServletContextListener {
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Contexto está sendo inicializado....");
// Aqui você pode inicializar o processo da JPA e outras coisas mais.
}
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Contexto está sendo destruido....");
// Aqui você pode destruir a(s) EntityManagerFactory da aplicação e fazer outras coisa que queira...
}
}
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.