Pessoal, boa noite.
Sou novo em hibernate e estou tentando buscar no banco um usuário e senha cadastrados.
Meu hibernate.cfg.xml está ok bem como o arquivo de configuração da tabela no banco.
Segue meu código:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class ListaDados {
public static void main(String[] args) {
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Cadastro cadastro = new Cadastro();
cadastro.setnome(session.getNamedQuery("select nome from Cadastro where nome = 'jacob'").toString());
cadastro.setsobrenome(session.getNamedQuery("select sobrenome from Cadastro where sobrenome = 'vilar'").toString());
System.out.println(cadastro.getnome());
}
}
Crio um objeto “cadastro” e uso o session.getNamedQuery para montar a query que valida o usuário no banco e atribui ao cadastro.setNome…
Tem outra forma mais simples de fazer ou se esta é a certa, por que está dando o erro:
Você precisa entender melhor sobre as queries do Hibernate.
Se você está utilizando Hibernate, pq vc está criando o objeto na unha?
Você também precisa saber a diferença entre NamedQuery e NativeQuery (que é a sintax que você está utilizando).
Esse post aqui explica tudo o que você precisa saber: JPA Consultas e Dicas.
Fiz de forma simples pra ver se tinha resposta simples. A sintese da coisa é:
Tipo eu tenho o usuario e senha pra validar:
String usuario = "jacob"; //usuario que ja tenho
String senha = "12345678"; ////senha que ja tenho
ai agora eu quero ir no banco, pegar apenas o usuário que seja igual aquele e senha igual aquela… Tipo:
String usuarioDoBanco = // usuario do banco
String senhaDoBanco = //senha do banco
Você tem que dá uma estudada melhor no hibernate.
[code] String usernameDigitado = "";
String keyDigitado = "";
List query = session.createQuery("FROM Cadastro c WHERE c.nome = :username AND c.senha =:key")
.setParameter("username", usernameDigitado)
.setParameter("key", keyDigitado).list();
if (query.size()>0){
List<Cadastro> newListCadastro = query;
for (Cadastro c : newListCadastro){
// Imprime os dados capturados do banco...
System.out.printf("Nome: %s - Sobrenome: $s",c.getNome(), c.getSobreNome());
}
}[/code]
[b]O resto é com você…
Abraço.[/b]
Valeu amigo.
Pelo que vi já resolve, mas tem como fazer isso sem usar uma list? Apenas String?
Só pra efeito de conhecimento, afinal, eu estou com essa duvida tem um tempão…
Abraço.
[quote=alberthy]Você tem que dá uma estudada melhor no hibernate.[/quote]Foi exatamente por isso que eu passei o link 
[b]Como o amigo jakefrog falou, você pode utilizar o NativeQuery. Utilize o link que o amigo informou!
Abraço.[/b]