Problema ao persistir uma classe

7 respostas
smorigo

Boa noite pessoal gostaria de tirar uma duvida sobre persistência de uma classe, bom minha classe é a seguinte:

public class Pedido implements Serializable {
	
	private Long codigo;
	private Date dataPedido;
	private Double total;
	private Parceiro parceiro;
	private Moeda moeda;

	// métodos get e set
}

A definição do meu DynaActionForm no struts-config.xml é a seguinte:

<form-bean name="pedidoForm" type="org.apache.struts.action.DynaActionForm" dynamic="true">
      <form-property name="codigo"      type="java.lang.Long"/>
      <form-property name="dataPedido"  type="java.lang.String" />
      <form-property name="total"       type="java.lang.Double" />            
      <form-property name="parceiro"    type="java.lang.Long"/>      
      <form-property name="moeda"       type="java.lang.String"/>      
    </form-bean>

No meu Action estou fazendo o seguinte:

Pedido pedido = new Pedido();
		Moeda moeda = new Moeda();
		Parceiro parceiro = new Parceiro();
		
		pedido.setCodigo((Long) formDinamico.get("codigo"));
		pedido.setTotal((Double) formDinamico.get("total"));
		pedido.setDataPedido( formatoData.parse((String)formDinamico.getString("dataPedido")) );
		
		moeda.setCodigo( formDinamico.getString("moeda"));
		pedido.setMoeda(moeda);
		
		// Aqui está o problema!!!
		parceiro.setCodigo((Long)formDinamico.get("parceiro"));
		pedido.setParceiro(parceiro);

		PedidoDAO.getInstance().salva(pedido);

Bom pessoal no meu JSP quando exibo o atributo parceiro´´ ele me apresenta um valor assim br.com.fts.exp.bean.Parceiro@1507ef7, acredito eu que seja o endereço na memoria... Como eu devo proceder para dar um Update neste registro ? como eu devo proceder para recuperar o atributocodigo´´ da classe ``Parceiro´´ ?
Estive lendo algumas coisas e pelo que entendi eu preciso fazer um Load (session.load(Parceiro.class, pk) do meu parceiro e o resultado eu setar na minha classe Parceiro…

Alguém sabe me falar qual a maneira correta de se fazer isso? :slight_smile:

Obrigadoooo

7 Respostas

pcalcado

Ola,

O valor de toString() (metodo chamado quando voce exibe um objeto) e por default uma combinaçao de nome da class + hashCode. De uma olahda no metodo toString. Leia a documentação da classe aqui java.lang.Object.

O Struts nao faz persistencia. Voce vai precisar de uma tecnologia, pode utilizar JDBC puro, DAOs ou outros como Hibernate. Como voce parece estar começando utiliza JDBC.

A proposito, sao objetos, nao registros :wink:

Shoes

smorigo

Valeu Calcado então eu devo fazer um override do metodo toString na classe Parceiro ?

public String toString() {
 return String.valueOf(codigo);
}
pcalcado

Nao, voce deve aprender a usar JDBC :wink:

http://www.guj.com.br/java.tutorial.artigo.7.1.guj

smorigo

estou usando Hibernate… e sobescrevendo o método deu certo…

pcalcado

como esta sua configuraçao de mapeamento?

smorigo

Meu mapeamento está assim:

<?xml version="1.0"?>
&lt;!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;

&lt;hibernate-mapping&gt;
    &lt;class name="br.com.fts.exp.bean.Pedido" table="TB_PEDIDO" lazy="false"&gt;

        &lt;id name="codigo" column="CD_PEDIDO" type="java.lang.Long" unsaved-value="0"&gt;
			&lt;generator class="sequence"&gt;
                &lt;param name="sequence"&gt;GE_CD_PEDIDO&lt;/param&gt;
	        &lt;/generator&gt;
        &lt;/id&gt;	 	      

		&lt;property column="DT_PEDIDO"  name="dataPedido" not-null="true" type="java.util.Date" /&gt;								
		&lt;property column="VL_TOTAL"  name="total" not-null="true" type="java.lang.Double" /&gt;						

		&lt;many-to-one class="br.com.fts.exp.bean.Parceiro" name="parceiro" not-null="true"&gt;
			&lt;column name="CD_PARCEIRO" /&gt;
		&lt;/many-to-one&gt;      		
		
		&lt;many-to-one class="br.com.fts.exp.bean.Moeda" name="moeda" not-null="true"&gt;
			&lt;column name="CD_MOEDA" /&gt;
		&lt;/many-to-one&gt;      				      

	&lt;/class&gt;
&lt;/hibernate-mapping&gt;
smorigo

fora essa maneira q ao meu ver parece um gambi rss tem alguma mais bonita de se fazer?? valeu pela ajuda…

Criado 3 de julho de 2005
Ultima resposta 3 de jul. de 2005
Respostas 7
Participantes 2