javer
Abril 23, 2009, 5:56am
#1
Por que será que dá exceção dizendo que a tabela (tabela usuario ) não está mapeada no Hibernate (versão 3.2.1) se ela está mapeada?
Exceção quando faz a Query:
usuario is not mapped [From usuario]
hibernate.reveng.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
[/code]
Usuario.hbm.xml
[code]<?xml version="1.0"?>
[/code]
hibernate.cfg.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.dialect.MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/transport
root
SENHA
true
thread
[/code]
Código onde faz a consulta para gerar uma lista de Option, onde dá o erro e não carrega os dois usuários cadastrados, esse método está no SessionBean1.java e é chamado no método init():
[code]private void buildUsuarioOptions() {
List usuarioList = null;
try {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
org.hibernate.Transaction tx = session.beginTransaction();
org.hibernate.Query q = session.createQuery(“From usuario”);
//org.hibernate.Query q = session.createSQLQuery(“SELECT * FROM usuario”);
usuarioList = (List) q.list();
} catch (Exception e) {
info("Erro: "+e.getMessage());
e.printStackTrace();
}
this.listaUsuarioOptions = new Option[usuarioList.size()];
int i = 0;
for (Usuario item : usuarioList) {
info("Usuario: "+item.getLogin());
Option opt = new Option(item.getId(), item.getLogin());
this.listaUsuarioOptions[i++] = opt;
}
}[/code]
Alguém saberia me dar uma dica do que estou fazendo errado? Estou iniciando em Hibernate e achava que estava tudo certo mas esta dando esse erro.
Obrigado.
[quote=javer]Exceção quando faz a Query:
usuario is not mapped [From usuario]
Código onde faz a consulta para gerar uma lista de Option, onde dá o erro e não carrega os dois usuários cadastrados, esse método está no SessionBean1.java e é chamado no método init():
org.hibernate.Query q = session.createQuery("From usuario");
[/quote]
Tenta from Usuario … eu também estou começando no Hibernate e pelo que li, você utiliza a classe Usuario , nao a tabela usuario …
Bom dia,
Quando vc cria “from usuario”, vc esta pensando em banco de dados, comum para qualquer desenvolvimento iniciante em hql.
Como esta o nome da sua classe “Usuario”, como em hql trabalhamos com objetos se você passar para “from Usuario” provavelmente terá seu resultado.
Qq dúvida estou a disposição.
Att.;
javer
Abril 23, 2009, 7:21am
#4
Obrigado a todos.
Tentei assim e agora deu mensagem diferente:
List<Usuario> usuarioList = null;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
//org.hibernate.Transaction tx = session.beginTransaction();
//org.hibernate.Query q = session.createQuery("from transys.pojo.Usuario");
//org.hibernate.Query q = session.createSQLQuery("SELECT * FROM usuario");
//usuarioList = session.createQuery("from transys.pojo.Usuario").list();
usuarioList = session.createQuery("from Usuario").list();
} catch (Exception e) {
info("Erro gerando a lista: " + e.getMessage());
e.printStackTrace();
}
Mensagem de erro:
createQuery is not valid without active transaction
Como resolve isso?
Só confirmando, para usar o SQL normal eu uso session.createSQLQuery ?
bKn
Abril 23, 2009, 7:49am
#5
“createQuery is not valid without active transaction”
Caramba, é só ler o erro né. Descomenta a linha onde você instancia uma transação.
javer
Abril 23, 2009, 2:39pm
#6
Ok, obrigado novamente.
Agora tenho um outro problema, no meu DAO tenho esse método:
public Usuario busca(Integer id) {
org.hibernate.Transaction tx = session.beginTransaction();
tx.begin();
Usuario usuario = (Usuario) this.session.load(Usuario.class, id);
tx.commit();
return usuario;
}
… que está disparando essa exceção:
could not initialize proxy - no Session
O que está errado? Quero passar o id do usuário e recuperar um usuário.
Acho q o problema é q vc esta tentando fazer de ponta cabeça…
javer
Abril 23, 2009, 3:11pm
#8
Você quis dizer de cabeça para baixo (up side down), a imagem é irrelevante nesse caso, infelizmente não é isso não.
ahuahuahua num é q se trocou desvirou o avatar ?? agora so falta desvirar o método…
o ponta cabeça, é que preimeiro vc tenta rodar, ai depois vc le a saida do problema de configuração, ai vc configura, e tenta rodar denovo, e assim vai… ou seja… ta fazendo de ponta cabeça, de traz pra frente…
O.o
mais uma duvida… pq vc abre tranzação pra fazer select ??
bom, o erro não ta completo, e pode ser N coisas, um stacktrace as vezes ajuda…
javer
Abril 23, 2009, 5:06pm
#10
Já resolvi, coloquei o lazy=“false” no mapeamento e resolveu.