Cadastro Hibernate + JSF

5 respostas
D

Boa tarde Pessoal,

Gostaria de uma ajudinha no desenvolvimento de uma solução.

Estou pretendendo utilizar o JSF + Hibernate. Estou utilizando a IDE Exadel, muito boa por sinal.

Meu primeiro desafio é criar um cadastro de município. Este cadastro eu consegui funcionar no Main(inserir/deletar cód. abaixo). Na realidade o que estou com dificulade é criar uma interligação com JSF para inserir/deletar/pesquisar…Não tenho idéia como devo fazer. Alguém poderia me ajudar?

inserimunicipio.java

package testes;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import bean.Municipio;

public class incluirMunicipio {

	
	public static void main(String[] args) {
		

		try {
			SessionFactory sf = new Configuration().configure(
					"/conf/hibernate.cfg.xml").buildSessionFactory();

			Session session = sf.openSession();

			Transaction tx = session.beginTransaction();

			Municipio m = new Municipio();

			m.setDescmunicipio("Floripa");
			session.save(m);
			tx.commit();
			session.close();

		} catch (HibernateException e) {
			System.out.println(e.getMessage());
		}

	}

}

municipio.java BEAN

package bean;

import java.util.HashSet;
import java.util.Set;

public class Municipio implements java.io.Serializable {

	private int codmunicipio;
	private String descmunicipio;
	
	
	public Municipio() {
	}

	public Municipio(int codmunicipio) {
		this.codmunicipio = codmunicipio;
	}

	public Municipio(int codmunicipio, String descmunicipio, Set<Praia> praias) {
		this.codmunicipio = codmunicipio;
		this.descmunicipio = descmunicipio;
		this.praias = praias;
	}

	public int getCodmunicipio() {
		return this.codmunicipio;
	}

	public void setCodmunicipio(int codmunicipio) {
		this.codmunicipio = codmunicipio;
	}

	public String getDescmunicipio() {
		return this.descmunicipio;
	}

	public void setDescmunicipio(String descmunicipio) {
		this.descmunicipio = descmunicipio;
	}

	
}

hibernate.cfg.xml

&lt?xml version="1.0" encoding="utf-8"?&gt
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="org/hibernate/SessionFactory">
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">tecnologia</property>
        <property name="hibernate.connection.url">jdbc:postgresql://12.16.0.3:5432/sinlab12</property>
        <property name="hibernate.connection.username">123</property>
        <property name="hibernate.dialect">org.hibernate.dialect.ProgressDialect</property>
        <property name="hibernate.show_sql">false</property>
        <mapping resource="map/Municipio.hbm.xml" />
       </session-factory>
</hibernate-configuration>

Municipio.hbm.xml

&lt?xml version="1.0"?&gt
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated May 4, 2007 1:39:38 PM by Hibernate Tools 3.2.0.beta8 -->
<hibernate-mapping>
    <class name="bean.Municipio" table="municipio" schema="public">
        <id name="codmunicipio" type="int">
            <column name="codmunicipio" />
            <generator class="assigned" />
        </id>
        <property name="descmunicipio" type="string">
            <column name="descmunicipio" length="45" />
        </property>
        </class>
</hibernate-mapping>

5 Respostas

urubatan

da uma olhada neste exemplo: http://www.urubatan.com.br/2007/05/03/jsf_jpa_di_get_annotations/
é um cadastro de apenas uma entidade, que utiliza JSF e JPA, e alguns recursos avançados do JSF :smiley:

poderia ser simplificado, mas acho que vale de referencia …

A

urubatan:
da uma olhada neste exemplo: http://www.urubatan.com.br/2007/05/03/jsf_jpa_di_get_annotations/
é um cadastro de apenas uma entidade, que utiliza JSF e JPA, e alguns recursos avançados do JSF :smiley:

poderia ser simplificado, mas acho que vale de referencia …

Meus sinceros parabéns Urubatan. Realmente coisa de primeiro mundo, como diria um amigo meu.

[]'s e sucesso.

PS.: Detestei saber o que fizeram a ti no Spring com relação as Annotations, lamentável amigo.

D

Obrigado pela dica amigo.

Pena que não me ajudou muito.

Se alguem tiver alguma estrutura ( mais simples) eu agradeceria

T+

urubatan

utiliza aquele exemplo mesmo, mas acho que o que é importante para ti, pelo que tu disse que esta procurando, é o seguinte:
:arrow: Classe da entidade “public class Cliente …”
:arrow: Managed Bean “public class ExemploMBean …”
:arrow: Faces-config.xml e o JSP

o resto se tu simplesmente aceitar como esta ja vai funcionar :smiley:

para cada cadastro que tu fizer tu cria uma entidade nova, um mbean, registra o MBean no faces-config.xml e cria uma ou mais JSPs …

não precisa daquele monte de XMLs do Hibernate como tu ta usando no código que postou na pergunta …

A

Não sei se tu já conseguiu fazer o que você queria…
Mas eu encontrei um erro no teu Hibernate.xml…

Você está se conectando em um banco de dados PostGree e está falando para o Hibernate usar o dialeto de Progress…

dá uma olhada nas linhas 08, 10 e 12:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="org/hibernate/SessionFactory">
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">tecnologia</property>
        <property name="hibernate.connection.url">jdbc:postgresql://12.16.0.3:5432/sinlab12</property>
        <property name="hibernate.connection.username">123</property>
         <property name="hibernate.dialect">org.hibernate.dialect.ProgressDialect</property>
        <property name="hibernate.show_sql">false</property>
        <mapping resource="map/Municipio.hbm.xml" />
       </session-factory>
</hibernate-configuration>

Um dos dois está errado, acho mais provável você estar utilizando o Dialeto errado.
Utilize este daqui:
org.hibernate.dialect.PostgreSQLDialect

Ats,
Endrigo Antonini

Criado 16 de maio de 2007
Ultima resposta 16 de out. de 2007
Respostas 5
Participantes 4