Inserção de dados em várias tabelas

0 respostas
cs.santos0

iai pessual, preciso de uma ajudinha...pois ta meio complicado...

tenho um cadastro de parceiros, onde tenho q separar os dados de endereço..para isso criei as seguintes classes: Parceiro, Endereço, Cidade, Estado e País...como na imagem em anexo...

criei os relacionamentos pelo hibernate....

Parceiro:

@Entity
@Table(name="tb_parceiro")
public class Parceiro {

	@Id
	@GeneratedValue
	@Column(name="id_parceiro")
	private Long id;

	private String nome;

	private String telefone;

	private Integer numero;

	private String complemento;

	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_endereco")
	@Cascade(CascadeType.SAVE_UPDATE)
	private Endereco endereco;

Endereco:

@Entity
@Table(name="tb_endereco")
public class Endereco {

	@Id
	@GeneratedValue
	@Column(name="id_endereco")
	private Long id;

	private String logradouro;

	private String bairro;

	private String cep;

	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_cidade")
	@Cascade(CascadeType.SAVE_UPDATE)
	private Cidade cidade;

	@OneToMany(mappedBy="endereco", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Parceiro> parceiros;

Cidade:

@Entity
@Table(name="tb_cidade")
public class Cidade {

	@Id
	@GeneratedValue
	@Column(name="id_cidade")
	private Long id;

	@Column(name="cid_nome")
	private String nome;

	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_estado")
	@Cascade(CascadeType.SAVE_UPDATE)
	private Estado estado;

	@OneToMany(mappedBy="cidade", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Endereco> enderecos;

Estado:

@Entity
@Table(name="tb_estado")
public class Estado {

	@Id
	@GeneratedValue
	@Column(name="id_estado")
	private Long id;

	private String nome;

	private String uf;

	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_pais")
	@Cascade(CascadeType.SAVE_UPDATE)
	private Pais pais;

	@OneToMany(mappedBy="estado", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Cidade> cidades;

e País:

@Entity
@Table(name="tb_pais")
public class Pais {

	@Id
	@GeneratedValue
	@Column(name="id_pais")
	private Long id;

	private String nome;

	private String uf;

	@OneToMany(mappedBy="pais", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Estado> estados;

ai na minha classe ParceiroLogic tenho o metodo adiciona...

public void adiciona(Parceiro parceiro) {
		this.parceiro = parceiro;
		this.daoFactory.beginTransaction();
		this.daoFactory.getParceiroDao().atualiza(parceiro);
		this.daoFactory.commit();
	}

e minha jsp do formulario...

<form action="parceiro.adiciona.logic" method="post">
        Nome: <input name="parceiro.nome"/><br/>
        Telefone: <input name="parceiro.telefone"/><br/>
        Nº: <input name="parceiro.nome"/><br>
        Compl:<input name="parceiro.complemento"/><br>
        Endereço: <input name="endereco"/><br>
        Bairro: <input name="bairro"/><br>
        CEP: <input name="cep"/><br>
        Cidade: <input name="cidade"/><br>
        Estado:
        <select name="estado" >
     		<option value="0">-- Selecione --</option>
			<c:forEach var="estado" items="${listaEstados}">
			<option value="${estado.id}">${estado.uf}</option>
			</c:forEach>
		</select>
        <br>
        <input type="submit" value="Enviar"/>
	</form>

o problema é na nessa hora de adicionar...a minha duvida é como eu faço para adicionar todos os dados corretos, todos distribuidos em suas respectivas tabelas....eu não sei como deve ficar o name dos inputs, e não sei como deve ficar o metodo adiciona...se tem q adicionar algo mais...

OBS: estou usando VRaptor

será que alguem pode me dar uma ajuda??

vlw

Criado 16 de abril de 2008
Respostas 0
Participantes 1