Queria sabar se algúem poderia me ajudar com o seguinte problema:
Estou tentando criar um projeto usando o Hibernate só que estou tendo um pequeno problema...quando coloco minha aplicação para rodar é remetida a seguinte msg de erro:
Ele não está encontrando o arquivo hibernate.cfg.xml acredito! Este arquivo esta na raiz do meu projeto. Abaixo segue o trecho de código onde esta sendo utilizado este arquivo(classe SessionManager.java):
privatestaticStringCONFIG_FILE_LOCATION="/hibernate.cfg.xml";/** Holds a single instance of Session */privatestaticfinalThreadLocalthreadLocal=newThreadLocal();/** The single instance of hibernate configuration */privatestaticfinalConfigurationcfg=newConfiguration();/** The single instance of hibernate SessionFactory */privatestaticorg.hibernate.SessionFactorysessionFactory;/** * Returns the ThreadLocal Session instance. Lazy initialize * the <code>SessionFactory</code> if needed. * * @return Session * @throws HibernateException */publicstaticSessioncurrentSession()throwsHibernateException{Sessionsession=(Session)threadLocal.get();if(session==null){if(sessionFactory==null){try{cfg.configure(CONFIG_FILE_LOCATION);sessionFactory=cfg.buildSessionFactory();}catch(Exceptione){System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}session=sessionFactory.openSession();threadLocal.set(session);}returnsession;}
org/apache/commons/logging/LogFactory é uma classe do Commons logging. Veja se vc tem algum commons-logging.jar no seu classpath… ele vem junto com as libs do hibernate ou vc pode pegar em http://jakarta.apache.org/commons/logging/
W
Wonder
no seu hibernate.cfg.xml vc adicionou o Tabela.hbm.xml do mapeamento relacional?
Alguém teria uma idéia do que poderia ser?
Agradeço antecipadamente!!!
brunocosta
E qual o banco de dados? Parece que o usuário que você tá usando pra conectar não tem permissão de acesso
C
ClodoaldoJR
O banco de dados utilizando é o PostGre!!
Segue abaixo a exceção:
Caused by: java.sql.SQLException: ERROR: permission denied for relation cliente
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1471)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1256)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:175)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:389)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:240)
at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:89)
... 11 more
brunocosta
Hmmm num sei nada de postgre!
Mas deve ser algo relacionado às permissões… dê uma olhada na documentaçao…
passos
O usuario que vc esta utilizando nao deve ter permissão para executar o comando solicitado. Vc consegui fazer este mesmo comando manualmente?
C
ClodoaldoJR
Olá pessoal…desculpas ai por tá enchendo o saco de todos vcs!!
O problema de conexão com o banco foi resolvido, mas agora surge outra exceção:
org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, short
at org.hibernate.id.IdentifierGeneratorFactory.createNumber(IdentifierGeneratorFactory.java:119)
at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:47)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:85)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
at hibernate.beans.ClienteDAO.insert(ClienteDAO.java:16)
at hibernate.test.HibernateTest.main(HibernateTest.java:24)
Agradeço a atenção !!!
brunocosta
Agora vc vai ter que postar seu hbm.xml aqui… parece que o tipo do atributo “id” de seu objeto não coincide com o tipo que vc declarou no hbm.xml…
C
ClodoaldoJR
Ah saquei o que era… havia um campo do tipo String que possuia um <generator class=“increment”/>, mas o PostGre ou o Hibernate não aceita increment para String, apenas long, int e short!!!
Bruno muito obrigado por sua paciência e atenção ok?
[]'s Clodoaldo Gouveia
C
cecaldas
Só uma dica,
Se a sua pergunta inicial foi resolvida, abra outro post, pois fazendo pergunta de assuntos diferentes no mesmo post, vc pode estar camuflando uma possível dúvida de outra pessoa. Pq se o cara tah procurando um assunto x, e o post começa com assunto y e tem várias páginas, ele num vai página por página para ver se tem o assunto x, ele vai preferir colocar a culpa na busca do fórum.