Olá pessoal,
Estou montando um site com as seguintes ferramentes: Velocity, WebWork e Hibernate…
WebWork e Velocity tah susu, mas o Hibernate tah dando trabalho… funciona apenas o session.load … o session.save não funfa… e naum dah nenhuma mensagem de erro… vou passar minhas classes aqui se alguem puder me ajudar eu agradeco
Ps. Estou usando PostgreSQL como banco de dados
Ps. Caso seja necessário posso enviar os outros arquivos.
AtendenteLogic.java
package br.com.integradas.logic;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import br.com.integradas.model.Atendente;
import br.com.integradas.model.Cliente;
import br.com.integradas.model.Contrato;
import br.com.integradas.model.RamoAtividade;
import com.opensymphony.xwork.ActionSupport;
/**
*
* Created on 21/06/2004
* @author Wanderley
*
*/
public class AtendenteLogic extends ActionSupport {
private Atendente atendente;
private String atendenteDesativado;
public String execute() throws Exception {
if (this.atendente == null) {
return SUCCESS;
}
Configuration cfg = new Configuration();
cfg.addClass(Atendente.class);
cfg.addClass(Cliente.class);
cfg.addClass(Contrato.class);
cfg.addClass(RamoAtividade.class);
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Atendente teste = new Atendente();
teste.setNome("Wanderley");
teste.setId(null);
teste.setDesativado(true);
session.load(this.atendente, new Long(2));
//this.atendente.setId(null);
session.save(teste);
session.close();
this.atendente.setId(null);
return SUCCESS;
}
public Atendente getAtendente() {
return atendente;
}
public String getAtendenteDesativado() {
return atendenteDesativado;
}
public void setAtendente(Atendente atendente) {
this.atendente = atendente;
}
}
Atendente.java
package br.com.integradas.model;
import java.util.Set;
/**
* Created on 16/06/2004
*
* Representa um atendente com seus diversos contratos efetuados.
*
* @author Wanderley
* @hibernate.class table="atendentes"
*
*/
public class Atendente {
private Long id;
private Set contratos;
private String nome;
boolean desativado;
/**
* @hibernate.set lazy="true" inverse="true"
* @hibernate.collection-key column="atendenteId"
* @hibernate.collection-one-to-many class="br.com.integradas.model.Contrato"
* @return Returns the contratos.
*/
public Set getContratos() {
return contratos;
}
/**
* @hibernate.id generator-class="native" unsaved-value="null"
* @return Retorna id do Atendente.
*/
public Long getId() {
return id;
}
/**
* @hibernate.property
* @return Retorna o nome.
*/
public String getNome() {
return nome;
}
/**
* @hibernate.property
* @return Retorna Status de Desativado do Atendente.
*/
public boolean isDesativado() {
return desativado;
}
/**
* @param contratos The contratos to set.
*/
public void setContratos(Set contratos) {
this.contratos = contratos;
}
/**
* @param desativado Valor do Status de Desativado do Atendente.
*/
public void setDesativado(boolean desativado) {
this.desativado = desativado;
}
/**
* @param id Atribui id ao Atendente.
*/
public void setId(Long id) {
this.id = id;
}
/**
* @param nome Atribui nome ao atendente.
*/
public void setNome(String nome) {
this.nome = nome;
}
}
Atendente.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="br.com.integradas.model.Atendente"
table="atendentes"
dynamic-update="false"
dynamic-insert="false"
>
<id
name="id"
column="id"
type="java.lang.Long"
unsaved-value="null"
>
<generator class="native">
</generator>
</id>
<set
name="contratos"
lazy="true"
inverse="true"
cascade="none"
sort="unsorted"
>
<key
column="atendenteId"
/>
<one-to-many
class="br.com.integradas.model.Contrato"
/>
</set>
<property
name="nome"
type="java.lang.String"
update="true"
insert="true"
column="nome"
/>
<property
name="desativado"
type="boolean"
update="true"
insert="true"
column="desativado"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-Atendente.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>