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.