Erro no Hibernate/JPA

5 respostas
R

Alguém pode me ajudar com este erro ... O programa que tem entradas txt ler e passar para o MySql.
É uma saida de Relógio Ponto ... tenho que posteriormente tratar os dados e por isso uma passagem para o Excel.
Faz uma semana que estou estudando, este é meu primeiro programa essas tecnologias com.
[/code]
@ Entity
@ Table (name = "funcoes")
@ NamedQueries ((
@ NamedQuery (name = "Funcoes.findAll", query = "SELECT f FROM Funcoes f"),
@ NamedQuery (name = "Funcoes.findById", query = "SELECT f FROM Funcoes f WHERE f.id =: id"),
@ NamedQuery (name = "Funcoes.findByFuncao", query = "SELECT f FROM Funcoes f = f.funcao ONDE: funcao"),
@ NamedQuery (name = "Funcoes.findByData", query = "SELECT f FROM Funcoes f WHERE f.data =: Dados"),
@ NamedQuery (name = "Funcoes.findByHora", query = "SELECT f FROM Funcoes f = f.hora ONDE: Hora"),
@ NamedQuery (name = "Funcoes.findByFuncionario", query = "SELECT f FROM Funcoes f WHERE f.funcionario = funcionario:")
))

Funcoes classe pública (

@ Id
@ GeneratedValue (strategy = GenerationType.AUTO)
private Integer id;
@ Column (name = "FUNCAO", length = 255)
private String funcao;
@ Column (name = "DATA")
@ Temporal (TemporalType.DATE)
Dt Dados Privado;
@ Column (name = "Hora")
@ Temporal (TemporalType.TIME)
private Date hora;
@ Column (name = "Funcionario")
funcionario private Integer;

Funcoes Pública () (
)

Funcoes Pública (Integer id) (
this.id = id;
)

/ / Getters e setters

)
[/Code]

[code]
public class Registro (

public static int count = 0;
public static void main (String [] args) throws FileNotFoundException, ParseException (

Funcoes funcoes = new Funcoes ();
SimpleDateFormat data = new SimpleDateFormat ( "dd / mm / yyyy");
SimpleDateFormat hora = new SimpleDateFormat ( "hh: mm: ss");
Scanner scan = new Scanner (new File ( "C: \ Users \ Ricardo \ \ Documents \ \ Henry \ \ MeusArquivosSaida \ \ Funa § Ãμes.txt"));

while (scan.hasNextLine ()) (
String linha = scan.nextLine ();
String [] campos = linha.split ( "");
String funcao = campos [0];
funcoes.setFuncao (funcao);
Dt = data.parse Dados (campos [1]);
funcoes.setData (dt);
Hr = hora.parse Dados (Campos [2]);
funcoes.setHora (hr);
funcionario int = Integer.parseInt (Campos [3]);
funcoes.setFuncionario (funcionario);

/ / Processamento aqui.

EntityManagerFactory emf = Persistence.createEntityManagerFactory ( "JavaApplication3PU");
EntityManager em = emf.createEntityManager ();
EntityTransaction tx = em.getTransaction ();
tx.begin ();
em.persist (Funções);
tx.commit ();
em.close ();
emf.close ();

String str = "";
for (int x = 0; x <campos.length; x + +) (
str + = campos [x] + "\ t";
)
System.out.println (str);
count + +;

)

)
)
[/ Code]
[code]
> <? xml version = "1.0" encoding = "UTF-8"?
Xmlns - Uma versão persistência <= "1,0 xmlns" http://java.sun.com/xml/ns/persistence = ": xsi =" http://www.w3.org/2001/XMLSchema instância de "xsi: http://java.sun.com/xml/ns/persistence schemaLocation = "http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
- Nome = "JavaApplication3PU <persistence-unit" transaction-type="RESOURCE_LOCAL">
<provider> org.hibernate.ejb.HibernatePersistence </ provider>
<class> Control.Funcoes </ class>
- <properties>
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.password" value="1234" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/ponto" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</ Properties>
</ Persistence-unit>
</ Persistence>
[/ Code]

/ / Erro
[code]
org.hibernate.QueryException: não foi propriedade de Possível Resolução: Dados de: Control.Funcoes [SELECT f FROM Control.Funcoes f WHERE f.data =: dados]
na org.hibernate.persister.entity.AbstractPropertyMapping.propertyException (AbstractPropertyMapping.java: 44)
na org.hibernate.persister.entity.AbstractPropertyMapping.toType (AbstractPropertyMapping.java: 38)
na org.hibernate.persister.entity.AbstractEntityPersister.toType (AbstractEntityPersister.java: 1358)
na org.hibernate.hql.ast.tree.FromElementType.getPropertyType (FromElementType.java: 279)
na org.hibernate.hql.ast.tree.FromElement.getPropertyType (FromElement.java: 386)
na org.hibernate.hql.ast.tree.DotNode.getDataType (DotNode.java: 566)
na org.hibernate.hql.ast.tree.DotNode.prepareLhs (DotNode.java: 241)
na org.hibernate.hql.ast.tree.DotNode.resolve (DotNode.java: 188)
na org.hibernate.hql.ast.tree.FromReferenceNode.resolve (FromReferenceNode.java: 94)
na org.hibernate.hql.ast.tree.FromReferenceNode.resolve (FromReferenceNode.java: 90)
na org.hibernate.hql.ast.HqlSqlWalker.resolve (HqlSqlWalker.java: 728)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.expr (HqlSqlBaseWalker.java: 1216)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery (HqlSqlBaseWalker.java: 4041)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr (HqlSqlBaseWalker.java: 3525)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr (HqlSqlBaseWalker.java: 1762)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause (HqlSqlBaseWalker.java: 776)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.query (HqlSqlBaseWalker.java: 577)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement (HqlSqlBaseWalker.java: 281)
na org.hibernate.hql.antlr.HqlSqlBaseWalker.statement (HqlSqlBaseWalker.java: 229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze (QueryTranslatorImpl.java: 228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile (QueryTranslatorImpl.java: 160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile (QueryTranslatorImpl.java: 111)
at org.hibernate.engine.query.HQLQueryPlan. <init> (HQLQueryPlan.java: 77)
at org.hibernate.engine.query.HQLQueryPlan. <init> (HQLQueryPlan.java: 56)
na org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan (QueryPlanCache.java: 72)
na org.hibernate.impl.SessionFactoryImpl.checkNamedQueries (SessionFactoryImpl.java: 402)
na org.hibernate.impl.SessionFactoryImpl. <init> (SessionFactoryImpl.java: 352)
at org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java: 1294)
na org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory (AnnotationConfiguration.java: 859)
na org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java: 669)
na org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory (HibernatePersistence.java: 126)
at javax.persistence.Persistence.createEntityManagerFactory (Persistence.java: 51)
at javax.persistence.Persistence.createEntityManagerFactory (Persistence.java: 33)
na Control.Registro.main (Registro.java: 39)
Exception in thread principal javax.persistence.PersistenceException ": [PersistenceUnit: JavaApplication3PU] Unable to build EntityManagerFactory
na org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java: 677)
na org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory (HibernatePersistence.java: 126)
at javax.persistence.Persistence.createEntityManagerFactory (Persistence.java: 51)
at javax.persistence.Persistence.createEntityManagerFactory (Persistence.java: 33)
na Control.Registro.main (Registro.java: 39)
CAUSADAS POR: org.hibernate.HibernateException: Erros em consultas nomeadas: Funcoes.findByData
na org.hibernate.impl.SessionFactoryImpl. <init> (SessionFactoryImpl.java: 365)
at org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java: 1294)
na org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory (AnnotationConfiguration.java: 859)
na org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java: 669)
... Mais 4
Java Result: 1
CONSTRUIDO COM SUCESSO (tempo total: 2 segundos)
[/ Code]

Obrigado ..

5 Respostas

zoren

nas suas named queries tira o espaço entre : e o nome do parâmetro

na sua classe está : id

o certo é :id

e tem um lugar onde está escrito ONDE

tem q ser em inglês

WHERE

no funcionario os dois pontos é antes do nome do parametro

e nas queries que estão escritos onde
tem ONDE: algo que deve ser algum parâmetro

ai deveria se WHERE id = :id

zoren

mais um erro

“C: \ Users \ Ricardo \ \ Documents \ \ Henry \ \ MeusArquivosSaida \ \ Funa § Ãμes.txt”

a ‘’ é um caracter de escape

tem q colocar duas, ‘\’

R

isso é um erro no copiar e colar
no meu arquivo ta correto

se testar só a leitura do arquivo ta ok…!

L

tente trocar isto

por isto
por select f.Funcoes from Control f where f.Funcoes.data = :dados

:wink:

R

Consegui dar uma balão no meu problema, recriei unidade de persistencia com o NetBeans usando TopLink…
Como é para fins de estudo…

Valeu galera!!!

Criado 18 de novembro de 2009
Ultima resposta 18 de nov. de 2009
Respostas 5
Participantes 3