asousaj
Novembro 22, 2013, 8:43am
#21
Teste conforme abaixo e avise se funcionou.
Classe cobranca
[code]@ManyToOne
@JoinColumn (name=“idCobrancaCliente”)
private CobrancaCliente cobrancaCliente;//ta vendo essa variavel
[/code]
Classe CobrancaCliente
@OneToMany(mappedBy="cobrancaCliente")//coloque ela no mappedBy
private List<Cobranca> cobrancas;
asousaj
Novembro 22, 2013, 8:58am
#22
Não sei qual livro você está seguindo, mas tem esse mini livro do Hebert que é bem legal.
http://uaihebert.com/jpa-mini-livro-primeiros-passos-e-conceitos-detalhados/
O mesmo autor acima citado também lançou um livro. O preço tá bem legal
Nesse livro, Hebert Coelho, explica em tópicos curtos e direto ao ponto, técnicas para usar a JPA da melhor forma possível, evitando as tradicionais armadilhas. Você vai aprender a evitar o problema de N+1 consultas, usar corretamente o controle...
Sumário do livro
Corrigiu o erro dos relacionamentos, mais surgiu outra exception, pqp:
Exception in thread “main” java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode
-[IDENT] IdentNode: ‘p’ {originalText=p}
at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:154)
at org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:861)
at org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:651)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:651)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:287)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:235)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:119)
at org.hibernate.internal.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:974)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:485)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at br.com.projetos.sisCorp.ultil.Mapeamento.main(Mapeamento.java:18)
asousaj
Novembro 22, 2013, 6:17pm
#25
Mostra sua classe mapeamento, pois aconteceu algo na linha 18.
Pelo erro deve ser algo na sua Query JPQL.
Pela mensagem deVe ter faltado o ‘p’ no final … tipo “SELECT p FROM Produto p”.
Confere ai tuas @NamedQuery ’s
A classe mapeamento, é apenas o main chamando os entity:
public class Mapeamento {
[code]
public static void main(String[] args) {
// TODO Auto-generated method stub
EntityManagerFactory emf;
EntityManager em;
emf = Persistence.createEntityManagerFactory("conexao");
em = emf.createEntityManager();
}
}
[/code]
e eu mechi em umas named query cujo tinha o p, e o erro mudou para :
Caused by: org.hibernate.HibernateException: Errors in named queries: NotaFiscal.findAll
veja como esta minha query na classe notafiscal:
@NamedQuery (name=“NotaFiscal.findAll”, query=“SELECT nf FROM NotaFIscal nf”)
asousaj
Novembro 23, 2013, 12:00pm
#27
adam_sandler:
veja como esta minha query na classe notafiscal:
@NamedQuery (name=“NotaFiscal.findAll”, query=“SELECT nf FROM [color=red]NotaFIscal[/color] nf”)
Repara ali onde marquei em vermelho a letra “I” de Fiscal está maiúscula.
Correto:
@NamedQuery (name=“NotaFiscal.findAll”, query=“SELECT nf FROM [color=green]NotaFiscal[/color] nf”)
Corrigi, rodei, e nenhuma exception foi lançada:
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
porem , nada foi criado no banco.
no banco existe um database com o mesmo nome, que esta configurado no persistence.
asousaj
Novembro 23, 2013, 1:23pm
#29
Descomente a linha abaixo no teu persistence.xml
<!-- <property name="hibernate.hbm2ddl.auto" value="create" /> -->
Altere ela conforme abaixo:
<property name="hibernate.hbm2ddl.auto" value="update" />
Execute a aplicação novamente.
Não deu certo, não criou nada no bd
asousaj
Novembro 23, 2013, 3:00pm
#31
Cara confira se possui o log4j no teu classpath
log4j-xxxxx.jar
Qualquer coisa, posta aqui tudo que saiu na console.
sim, esta nas dependencias do maven, certinho
asousaj
Novembro 23, 2013, 5:42pm
#33
Posta o log da console aqui.
ja postei so lança isso :
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
asousaj
Novembro 23, 2013, 7:45pm
#35
Qual implementação do JPA está usando? Hibernate?
###EDIT ####
Lembrei que é hibernate, por conta do persistence.xml
Cara falta alguma biblioteca … Qual versão do hibernate tá usando?
Olha abaixo o que sai na minha console ao executar um projetinho de testes.
Nov 23, 2013 4:40:23 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
Nov 23, 2013 4:40:23 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.1.Final}
Nov 23, 2013 4:40:23 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Nov 23, 2013 4:40:23 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Nov 23, 2013 4:40:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Nov 23, 2013 4:40:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
Nov 23, 2013 4:40:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: true
Nov 23, 2013 4:40:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/centrolocal]
Nov 23, 2013 4:40:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=root, password=****, autocommit=true, release_mode=auto}
Nov 23, 2013 4:40:24 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
Nov 23, 2013 4:40:24 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
Nov 23, 2013 4:40:24 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000228: Running hbm2ddl schema update
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000102: Fetching database metadata
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000396: Updating schema
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Category
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Comment
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Post
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: User
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Category
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Comment
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Post
Nov 23, 2013 4:40:24 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: User
Nov 23, 2013 4:40:26 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Realmente pode estar faltando, mas eu baixo pelo maven veja se falta algo :
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.1.Final</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.1.0.CR2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
asousaj
Novembro 24, 2013, 12:26am
#37
Cara eu optei por não usar maven por enquanto, depois que tiver expert eu usarei.
Fazendo na “unha” é muito melhor pro aprendizado, que é meu foco.
vamos aguardar alguém que entenda de maven pra ajudar
eu ja instalei hibernate na unha antes e consegui gerar as tabelas normal, mas pelo maven parece q é so isso do hibernate pelo que vi nos tutoriais.
O pior que ninguem ta vendo o topico mano, so nois dois.
[quote=adam_sandler]eu ja instalei hibernate na unha antes e consegui gerar as tabelas normal, mas pelo maven parece q é so isso do hibernate pelo que vi nos tutoriais.
O pior que ninguem ta vendo o topico mano, so nois dois.
:/[/quote]
Confesso que eu, e acredito que muitos estão acompanhando o tópico sim, mas só a parte “vital” do problema pois eu por exemplo não uso Maven, pelo menos no momento traria mais trabalho técnico sem necessidade do que soluções que interessam pro cliente.
Veja se a solução dessas questões tem algo que você possa aproveitar:
http://users.mafr.de/~matthias/articles/generating-ddl-scripts.html
Se alguem entender de maven, veja como esta meu pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.projetos</groupId>
<artifactId>sisCorp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>sisCorp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.1.Final</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
</repositories>
<build>
<finalName>sisCorp</finalName>
</build>
</project>
de qualquer forma obg a todos q estao ajudando.