Ola Gente!!
Tenho o mapeamento no hibernate da classe categoria, a própria classe e a classe que faz a persistencia dela. Não consigo gravar no banco, o Netbeans me dá a mensagem
Hibernate: select categoria0_.Cod_Categoria as Cod1_0_, categoria0_.Descricao as Descricao0_ from categoria categoria0_ where categoria0_.Descricao=? limit ?
Hibernate: select max(Cod_Categoria) from categoria
Estou colocando aqui o mapeamento xml da classe, a propria classe e a classe de persistencia:
Pessoal deculpem aí estão as classes:
mapeamento xml da classe
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class
name="beans.Categoria"
table="categoria">
<id
name="Cod_Categoria"
column="Cod_Categoria"
type="long">
<generator class="increment"/>
</id>
<property
name="Descricao"
column="Descricao"
type="string"/>
</class>
</hibernate-mapping>
/*
* Categoria.java
*
* Created on 1 de Dezembro de 2006, 10:31
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package beans;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author ti_m08
*/
public class Categoria extends Object implements Serializable{
private int Cod_Categoria;
private String Descricao;
private Set Produto = new HashSet();
private Produto produto;
public Categoria(int Cod_Categoria, String Descricao) {
super();
// TODO Auto-generated constructor stub
this.Cod_Categoria = Cod_Categoria;
this.Descricao = Descricao;
}
public Categoria() {
super();
}
public int getCod_Categoria() {
return Cod_Categoria;
}
public void setCod_Categoria(int Cod_Categoria) {
this.Cod_Categoria = ++Cod_Categoria;
}
public String getDescricao() {
return Descricao;
}
public void setDescricao(String Descricao) {
this.Descricao = Descricao;
}
}
Classe de persistencia
/*
* CategoriaFacade.java
*
* Created on 6 de Dezembro de 2006, 15:00
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package beans;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import org.hibernate.Session;
import util.HibernateUtil;
/**
* @netbeans.hibernate.facade beanClass=beanslocadora.categoria
*/
public class CategoriaFacade {
private Categoria categoria;
Session session;
public void saveCategoria(Categoria categoria) {
try{
HibernateUtil.beginTransaction();
Session session = HibernateUtil.currentSession();
session.save(categoria);
HibernateUtil.commitTransaction();
addMessage("Categoria salva com sucesso.");
}catch(Exception e1){
addMessage("Erro ao cadastrar categoria!");
}finally{HibernateUtil.closeSession();}
}
public String criaCategoria(Categoria categoria){
if (this.findByDescricao(categoria.getDescricao())==null)
{this.saveCategoria(categoria);
return "categoria_criada";
}else {
addMessage("Categoria ja existente!");
return "categoria_criate";
}
}
public String criaCategoria(){
if (this.findByDescricao(categoria.getDescricao())==null)
{this.saveCategoria(this.getCategoria());
return "categoria_criada";
}else {
addMessage("Categoria ja existente!");
return "categoria_create";
}
}
public CategoriaFacade(){}
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public String createSetup() {
this.setCategoria(new Categoria());
return "categoria_create";
}
public Categoria findByDescricao(String descricao) {
try{
Session session = HibernateUtil.currentSession();
String query1 ="from Categoria c where c.Descricao = :descricao";
org.hibernate.Query query = session.createQuery(query1).setString("descricao", descricao).setMaxResults(1);
Categoria categoria =(Categoria) query.uniqueResult();
return categoria;
}catch(Exception e){ addMessage("Erro ao localizar categoria!");
return null;
}
}
public List getCategorias() {
try{
HibernateUtil.beginTransaction();
Session session = HibernateUtil.currentSession();
org.hibernate.Query query = session.createQuery(
"select object(o) from Categoria as o");
List list= query.list();
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return list;
}catch(Exception e1){
addMessage("Erro em listar categorias!");
return null;
}
}
public String destroy() {
try{
HibernateUtil.beginTransaction();
Session session = HibernateUtil.currentSession();
Categoria categoria = getCategoriaFromRequestParam();
session.delete(categoria);
HibernateUtil.commitTransaction();
addMessage("Categoria removida com sucesso.");
} catch (Exception ex) {
addMessage("Erro ao remover categoria!");
} finally{HibernateUtil.closeSession();}
return "categoria_list";
}
public Categoria getCategoriaFromRequestParam() {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)ec.getRequest();
String param = request.getParameter("descricao");
System.out.println("categoria em getCategriaFromRqParam="+param);
return this.findByDescricao(param);
}
public static void addMessage(String msg) {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null, facesMsg);
}
public String editSetup() {
setCategoriaFromRequestParam();
return "categoria_edit";
}
public void setCategoriaFromRequestParam() {
Categoria categoria = getCategoriaFromRequestParam();
if(categoria==null) System.out.println("categoria nula");
setCategoria(categoria);
}
public String edit() {
try{
HibernateUtil.beginTransaction();
Session session = HibernateUtil.currentSession();
session.merge(categoria);
HibernateUtil.commitTransaction();
addMessage("Categoria foi atualizada com sucesso.");
} catch (Exception ex) {
try {
addMessage("Erro ao atualizar categoria!");
} catch (Exception e) {System.out.println("erro em edit categoria");}
}finally{ HibernateUtil.closeSession(); }
return "categoria_list";
}
}