Eu criei um DAO generico para tentar salvar dados no meu bancodedados, porém o JSF parrece estar dando um problema no meu codigo que eu nao entendo
HibernateDAO.java
[code=java]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.salesianos.dao;
import br.salesianos.db.CriadorDeSessao;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import org.hibernate.Session;
public class HibernateDAO {
private Class<T> classe;
public HibernateDAO(Class<T> classe) {
super();
this.classe = classe;
}
public void atualizar(T bean) {
Session session = CriadorDeSessao.getSession();
session.beginTransaction();
session.update(bean);
session.getTransaction().commit();
}
public void excluir(T bean) {
Session session = CriadorDeSessao.getSession();
session.beginTransaction();
session.delete(bean);
session.getTransaction().commit();
}
public T getBean(Serializable codigo) {
Session session = CriadorDeSessao.getSession();
session.beginTransaction();
T bean = (T)session.get(classe, codigo);
session.getTransaction().commit();
return bean;
}
public List<T> getBeans() {
Session session = CriadorDeSessao.getSession();
session.beginTransaction();
List<T> beans = (List<T>)session.createCriteria(classe).list();
session.getTransaction().commit();
return beans;
}
public void salvar(T bean) {
Session session = CriadorDeSessao.getSession();
session.beginTransaction();
session.save(bean);
session.getTransaction().commit();
}
}
Eu uso JSF e Hibernate na minha aplicação.
O codigo abaixo funciona perfeitamente dentro do netbeans quando eu chamo ele como se fosse um aplicativo desktop
package br.salesianos.dao;
import br.salesianos.modelo.*;
public class inserirEstado {
public static void main(String ags[]) {
System.out.println("oi");
HibernateDAO<Cidade> cidadeDAO = new HibernateDAO<Cidade>(Cidade.class);
Estado obj_estado = new Estado();
obj_estado.setEst_id(1);
Cidade obj_cidade = new Cidade();
obj_cidade.setCid_nom("ffffddd");
obj_cidade.setEstado(obj_estado);
cidadeDAO.salvar(obj_cidade);
}
}[/code]
porém quando eu uso um ManagedBean com a mesma logica do codigo acima, ele nao funciona, da erro de classe nao encontrada, fala que nao achou meu DAO generico
[code=java]java.lang.NoClassDefFoundError: br/salesianos/dao/HibernateDAO
eese é o ManagedBean que eu uso para salvar os dados atraves da pagina xhtml
GravaCidade.java
[code=java]package br.salesianos.db;
import br.salesianos.dao.HibernateDAO;
import br.salesianos.modelo.Cidade;
import br.salesianos.modelo.Estado;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import org.hibernate.*;
@ManagedBean
public class GravaCidade
{
private int est_id;
private String cid_nome;
private List estados;
public String gravar()
{
HibernateDAO<Cidade> cidadeDAO = new HibernateDAO<Cidade>(Cidade.class);
Estado obj_estado = new Estado();
obj_estado.setEst_id(1);
Cidade obj_cidade = new Cidade();
obj_cidade.setCid_nom("ffffddd");
obj_cidade.setEstado(obj_estado);
cidadeDAO.salvar(obj_cidade);
return "sucesso";
}
/**
* @return the est_id
*/
public int getEst_id() {
return est_id;
}
/**
* @param est_id the est_id to set
*/
public void setEst_id(int est_id) {
this.est_id = est_id;
}
/**
* @return the cid_nome
*/
public String getCid_nome() {
return cid_nome;
}
/**
* @param cid_nome the cid_nome to set
*/
public void setCid_nome(String cid_nome) {
this.cid_nome = cid_nome;
}
}
porque isso nao esta funcionando no aplicação JSF?
cadastro_cidade.xhtml
[code=java]
Curriculo SalesianoCadastro de Cidades
<f:view>
<h:form>
Nome da cidade:
Estado:
<h:commandButton value=“Gravar” action="#{gravaCidade.gravar}" />
</h:form>
</f:view>