Hibernate

10 respostas
S

Boa Tarde

Estou usando hibernate, onde apenas tenha as annotations e um persistence xml.

Como faço uma consulta aos dados usando o Hibernate

Eis minha classe principal que insere os dados

EntityManagerFactory emf = Persistence.createEntityManagerFactory("HibernateJPA2PU");
        EntityManager em = emf.createEntityManager();
        
        em.getTransaction().begin();        
        
        Teste teste = new Teste();

        teste.setNome("Teste");
        teste.setInscricao(1834);

        em.persist(teste);

        em.getTransaction().commit();
        
        emf.close();

10 Respostas

vinicius8891

Boa tarde sidjava ,

Segue dois exemplos de consultas, uma de todos os registros, e outra por um critério definido.

/**
	 * REALIZA A CONSULTA DE TODOS OS DADOS CADASTRADOS
	 * @return list
	 */
	public List<Pessoa> listarPessoas() {
		session.beginTransaction();

		List<Pessoa> list = (List<Pessoa>) session.createQuery("FROM Pessoa").list();

		hibernateUtil.getSessionFactory().close();
		session.close();
		
		return list;	
	}


	/**
	 * REALIZA A PESQUISA POR UM CRITERIO
	 * @param nome
	 * @return
	 */
	public List<Pessoa> pesquisarPessoa(String nome) {
		session.beginTransaction();
		
		List<Pessoa> list = ((List<Pessoa>) session.createQuery("FROM Pessoa WHERE nome='" + nome + "'").list());
		
		hibernateUtil.getSessionFactory().close();
		session.close();
		
		return list;
	}
S

Olá, Sid, não sou muito profissional em java, mas posso tentar de dar um pequeno impurrão.
consulte sobre a API Criteria.

Loiane

Hibernate ou JPA?
Vc está usando a API do JPA no seu código e não hibernate!

O código do vinicius8891 é hibernate! :slight_smile:

Segue exemplo de um CRUD completo usando JPA:
https://github.com/loiane/javaone-exjts4-jaxrs/blob/master/src/java/com/loiane/resources/service/AbstractFacade.java

S

Loiane Boa Tarde

ENtão me responda uma coisa. O que significa esse arquivo

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="JPAHibernatePU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>jpahibernate.Alunos</class>
    <class>jpahibernate.Professores</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="senha"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/escolabd"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
    </properties>
  </persistence-unit>
</persistence>

Só uso JPA com este arquivo no projeto?

Diego_Adriano

Qual versão do JSF vc quer usar ?
Na versão 2 já não precisa dessa configuração:

<class>jpahibernate.Alunos</class> <class>jpahibernate.Professores</class>
Você cria as anotações na propria classe, não precisa mais mapear no arquivo de configuração do hibernate

S

Ainda só preciso mapear as classes para o Banco de Dados

Não decidi se minha aplicação será WEB ou padrão stand-alone

Eu vi na apostila K19 Iniciando dessa forma
com esse arquivo

Esse xml Não é hibernate(arquivo de configuração)?

Diego_Adriano

Entendi … Hibernate e JPA podem ser usadas para ambas tecnologias …
Sim é a configuração do Hibernate, é o arquivo de Persistencia (persistencia.xml), ai vc esta conectando no banco, e dizendo para ele a ação que deve tomar.
Essa linha por exemplo diz se será CRIADO um novo banco toda vez q acessado ou ATUALIZADO

Essa apostila é muito boa para JSF, esse treinamento é muito bom … Esta no caminho certo

S

Obrigado Diego

Ajudou muito. Pois estou iniciando um projeto no trabalho e decidir usar Hibernate, e segui a apostila da K19, onde faço minhas Classes Entidades e uso o persistence.xml
para configurar o Banco de Dados. Estou iniciando dessa forma para poder usar estas configurações tanto para Web como para stand-alone

Valeu pela resposta

Diego_Adriano

Beleza, isso siga essa apostila que vc ira se dar bem …
Só mais uma coisa, acrescente essas 3 linhas ao seu arquivo, elas farao com o que Hibernate mostre o código SQL no console, já que com o JPA vc praticamente não ira utilizar comandos SQL, isso é bom para saber se esta sendo feita a instrução de forma correta.

<property name="hibernate.show_sql"     	          value="true"    />
<property name="hibernate.use_sql_comments"	  value="true"    />
<property name="hibernate.format_sql"     	          value="true"    />

Abraços … boa sorte

LPJava

dá uma olhada nesse post: http://blog.camilolopes.com.br/busca-com-hibernate-annotation-jsf/

Criado 12 de dezembro de 2011
Ultima resposta 12 de dez. de 2011
Respostas 10
Participantes 6