Inserção de Dados em um Classe via Struts

0 respostas
lucianosousa

boa tarde pessoal,

estou com uma pequena dificuldade para resolver um probleminha:

tenho uma classe empresa:

@Entity(name="empresa")
public class Empresa {
	
	@Id
	@Column(name="id_empresa")
	@GeneratedValue
	private int id;
	
	private String nome;
	private int cnpj;
	private int telefone;
		
	@OneToMany(mappedBy = "empresa")
	private Set<Login> login = new HashSet<Login>();
	
	@OneToMany(mappedBy = "empresa")
	private Set<Endereco> endereco = new HashSet<Endereco>();

//getters & setters
//...

e outra endereço:

@Entity
@Table(name = "endereco")
public class Endereco {
	
	@Id
	@GeneratedValue
	private int id;
	
	private String logradouro;
	private int numero;
	private String complemento;
	private String bairro;
	private String cidade;
	private String uf;
	private int cep;
	
	@ManyToOne(cascade = CascadeType.PERSIST)  
	@JoinColumn(name = "id_empresa")  
	private Empresa empresa;

estou tentando fazer a persistência de um endereço e uma empresa ao mesmo tempo via struts e não estou conseguindo imaginar uma forma exata de se fazer isso…
sei que é passando os parâmetros do endereço para a empresa, mas, não enxergo como fazer isso…

via terminal consegui assim:

public class AdicionaEmpresa {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {		
	
	Session s = new HibernateUtil().getSession();
	
	Empresa e = new Empresa();
	e.setNome("empresa1");
	e.setTelefone(123456789);
	
	Endereco end = new Endereco();
	end.setLogradouro("rua a");
	end.setNumero(1);
	end.setBairro("bairro");
	
	end.setEmpresa(e);
		
	e.getEndereco().add(end);
	
	s.save(e);
	s.save(end);	
	
	s.close();
		
	}
}

o que consegui fazer foi a persistência da empresa, e ficou assim:

public class AdicionaEmpresaAction extends Action{
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception{
		
		System.out.println("tentando adicionar empresa");
		
		Session session = new HibernateUtil().getSession();
				
		EmpresaForm formulario = (EmpresaForm) form;
		
		Empresa empresa = formulario.getEmpresa();
		
		EmpresaDAO dao = new EmpresaDAO(session);
		
		dao.salva(empresa);
		
		return mapping.findForward("ok");		
	}

}

com esse form:

public class EmpresaForm extends ActionForm{
	
	private Empresa empresa = new Empresa();
	
	public Empresa getEmpresa(){
		return this.empresa;
	}

}

formulário jsp:

<html:html>
	<html:errors/>
	
	<html:form action="/adicionaempresa" focus="empresa.nome">
		Nome:
		<html:text property="empresa.nome"/>
		<br/>
		CNPJ:
		<html:text property="empresa.cnpj"/>
		<br/>
		Telefone:
		<html:text property="empresa.telefone"/>
		<br/>
		<html:submit>Enviar dados</html:submit>
		<br/>
		</html:form>
		
</html:html>

desde já agradeço.
abs.

Criado 26 de outubro de 2009
Respostas 0
Participantes 1