Ola bom dia a tds estou com o seguinte erro no meu mapeamento com anotações no hibernate
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.ExceptionInInitializerError
at daoCliente.daoCliente.salvar(daoCliente.java:68)
at Test.main(Test.java:10)
Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: model.Cliente.cod_cliente in model.Contato.cod_cliente
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:543)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:508)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:296)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at Conexao.ConSys.<clinit>(ConSys.java:12)
... 2 more
Alguem sabe o que pode ser? se precisar eu posto o codigo desde ja mto obrigado abraços
Exception in thread "main" java.lang.ExceptionInInitializerError
at daoCliente.daoCliente.salvar(daoCliente.java:68)
at Test.main(Test.java:10)
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: model.Cliente column: codigo (should be mapped with insert="false" update="false")
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:652)
Quando temos um mapeamento bidirecional, o atributo “mappedBy” da anotação deve fazer referência ao atributo ou campo da classes, que quer alcançar. No seu caso o mappedBy, da anotação @OneToMany na classe Contato, deve apontar para a propriedade código da classe Cliente, desse modo vc poderá navegar nas duas direções no relacionamento.
[quote] Tenta alterar o mappedBy para “contato” e testa.
Abraço.[/quote]
blz agora parou aquele erro e apareceu outro:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.ClassCastException: org.hibernate.impl.SessionFactoryImpl cannot be cast to org.hibernate.Session
at daoCliente.daoCliente.salvar(daoCliente.java:68)
at Test.main(Test.java:10)
Exception in thread "main" java.lang.ClassCastException: org.hibernate.impl.SessionFactoryImpl cannot be cast to org.hibernate.Session
Cara, isso é erro de Cast. Portanto, reveja as classes que você está utilizando e procure manter a compatibilidade destes. Ao invés de utilizar SessionFactoryImpl, utilize Session. Não sei se resolverá, tem que tentar.
Acho que vale a pesquisa antes de tentar reportar isso para o grupo. Por exemplo, copiar o erro buscar no Google.
Procurei no google mas nao consegui resolver este problema, ta dando este erro agora, acho que o relacionamento das minhas classes estao errados seria um cliente tem n contatos e um contato tem um cliente.
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.exception.SQLGrammarException: could not insert: [model.Cliente]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at daoCliente.daoCliente.salvar(daoCliente.java:71)
at Test.main(Test.java:10)
Caused by: org.postgresql.util.PSQLException: ERROR: column "cod_cliente" of relation "cliente" does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
... 12 more
Hibernate: insert into cliente (cod_cliente, nome, cpf, rg, banco, conta, agencia, digito, praca, data, fone, rua, bairro, numero, cidade, uf, cep, email, codigo) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ok
Exatamente! Isso é um erro de modelagem. Reveja sua modelagem. Se você quer que um cliente tenha uma lista de contatos, então na classe cliente você tem que ter uma lista de contatos. Se você coloca uma lista de clientes na classe contato, você está fazendo o inverso do que você pretende fazer. Procure ler os erros que aparecem na sua aplicação e entendê-los. Facilita a resolução dos novos problemas.