Olá!!!
Estou tentando apontar os testes para um outro banco de dados, mas não encontro onde posso alterar a configuração do Hibernate no projeto pm73-dao.
Tem como fazer isso ou a implementação é restrita ao HSQLDB?
Olá!!!
Estou tentando apontar os testes para um outro banco de dados, mas não encontro onde posso alterar a configuração do Hibernate no projeto pm73-dao.
Tem como fazer isso ou a implementação é restrita ao HSQLDB?
As configurações são feitas no arquivo "persistence.xml", e você pode utilizar diversas bases de dados diferentes, basta ter o driver.
Skywalker, valeu pelo retorno!
Mas não encontrei esse arquivo no projeto. Alguns fóruns também falam sobre "persistence.cfg.xml", ou que ele deveria estar na /src, mas não encontrei esse arquivo também.
Geralmente fica na pasta META-INF, e a sua localização vai depender um pouco de como você criou o projeto. Geralmente uso maven para criar os projetos, que cria a pasta em src/main/resources.
Qual sistema operacional você está usando? Se for mac-os ou algum linux pode usar o comando
find -name persistence.xml
no diretório raíz do seu projeto.
Skywalker, estou usando o Windows. Rodei uma busca pelo Everything mas não achou esse arquivo.
O projeto foi disponibilizado pelo Alura na primeira aula do curso de Testes de Integração: http://s3.amazonaws.com/caelum-online-public/PM-73/pm73-dao.zip
Ps.: Everything = https://www.voidtools.com/
Ok, entendi. Eu achava que se tratava de um projeto jpa, mas não era o caso, e por isso não tinha o arquivo persistence.jpa. A configuração do banco de dados está sendo feita na classe CriadorDeSessoes. Lá você pode alterar as configurações com os mesmos parâmetros que usaria num arquivo de persistence.xml. Adicionei o driver do postgres no BuildPath do projeto e fiz o teste depois de alterar o método getConfig e funcionou.:
public Configuration getConfig() {
if(config == null) {
config = new AnnotationConfiguration()
.addAnnotatedClass(Lance.class)
.addAnnotatedClass(Leilao.class)
.addAnnotatedClass(Usuario.class)
.setProperty("hibernate.connection.driver_class", "org.postgresql.Driver")
.setProperty("hibernate.connection.url", "jdbc:postgresql://localhost/caelum")
.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect")
.setProperty("hibernate.connection.username", "caelum")
.setProperty("hibernate.connection.password", "")
.setProperty("hibernate.show_sql", "true");
}
return config;
}
(claro que antes eu criei o usuário caelum e a tablea caelum na base de dados com as devidas permissões.)
Boa Skywalker!!
Tava na minha cara, acho que faltou procurar um pouco... rs.
Muito obrigado pela ajuda!!