Olá Pessoal!
Estou criando uma classe de teste e estou dificuldade para persistir um relacionamento OneToMany.
Minha difculdade esta em persistir o endereço, pois sempre havera 2 endereços.
Estou utilizando JPA2 + Spring
Mapeamentos:
[code]@Entity(name = “PROPONENTE_PJ_FILIACAO”)
@SequenceGenerator(allocationSize = 1, sequenceName = “SQ_PROPONENTE_PJ_FILIACAO”, name = “SQ_PROPONENTE_PJ_FILIACAO”)
public class ProponentePjFiliacao extends Domain {
private static final long serialVersionUID = 1L;
private List<PropostaFiliacao> propostaFiliacao;
private List<EnderecoProponentePjFiliacao> enderecoProponentePjFiliacao;
private RamoAtividade ramoAtividade;
private SocioProponenteFiliacao socio;
private Long cnpj;
private Long cnpjComplemento;
private String nome;
private String razaoSocial;
private Date dataFundacao;
private String email;
private Long dddFone;
private Long numFone;
//transient
private String cnpjCompleto;
private String fone;
private String email2;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(generator = "SQ_PROPONENTE_PJ_FILIACAO")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "NUM_CNPJ", unique=true, nullable = false)
public Long getCnpj() {
return cnpj;
}
public void setCnpj(Long cnpj) {
this.cnpj = cnpj;
}
@Column(name = "NUM_CNPJ_COMPLEMENTO", nullable = false)
public Long getCnpjComplemento() {
return cnpjComplemento;
}
public void setCnpjComplemento(Long cnpjComplemento) {
this.cnpjComplemento = cnpjComplemento;
}
@Column(name = "NOM_COMERCIAL", nullable = true, length = 100)
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name = "NOM_RAZAO_SOCIAL", nullable = false, length = 100)
public String getRazaoSocial() {
return razaoSocial;
}
public void setRazaoSocial(String razaoSocial) {
this.razaoSocial = razaoSocial;
}
@Column(name = "DAT_FUNDACAO", nullable = false)
public Date getDataFundacao() {
return dataFundacao;
}
public void setDataFundacao(Date dataFundacao) {
this.dataFundacao = dataFundacao;
}
@Column(name = "DES_EMAIL", nullable = false, length = 50)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name = "DDD_TELEFONE", nullable = false)
public Long getDddFone() {
return dddFone;
}
public void setDddFone(Long dddFone) {
this.dddFone = dddFone;
}
@Column(name = "NUM_TELEFONE", nullable = false)
public Long getNumFone() {
return numFone;
}
public void setNumFone(Long numFone) {
this.numFone = numFone;
}
@OneToMany(mappedBy = "proponentePjFiliacao")
public List<PropostaFiliacao> getPropostaFiliacao() {
return propostaFiliacao;
}
public void setPropostaFiliacao(List<PropostaFiliacao> propostaFiliacao) {
this.propostaFiliacao = propostaFiliacao;
}
@OneToOne(mappedBy = "proponentePjFiliacao")
public SocioProponenteFiliacao getSocio() {
return socio;
}
public void setSocio(SocioProponenteFiliacao socio) {
this.socio = socio;
}
@Transient
public String getCnpjCompleto() {
return cnpjCompleto;
}
public void setCnpjCompleto(String cnpjCompleto) {
this.cnpjCompleto = cnpjCompleto;
}
@Transient
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
@Transient
public String getEmail2() {
return email2;
}
public void setEmail2(String email2) {
this.email2 = email2;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COD_RAMO_ATIVIDADE")
public RamoAtividade getRamoAtividade() {
return ramoAtividade;
}
public void setRamoAtividade(RamoAtividade ramoAtividade) {
this.ramoAtividade = ramoAtividade;
}
@OneToMany(mappedBy = "proponentePjFiliacao")
public List<EnderecoProponentePjFiliacao> getEnderecoProponentePjFiliacao() {
return enderecoProponentePjFiliacao;
}
public void setEnderecoProponentePjFiliacao(
List<EnderecoProponentePjFiliacao> enderecoProponentePjFiliacao) {
this.enderecoProponentePjFiliacao = enderecoProponentePjFiliacao;
}
}
@Entity(name = “ENDERECO_PROPON_PJ_FILIACAO”)
@SequenceGenerator(allocationSize = 1, sequenceName = “SQ_ENDERECO_PROPON_PJ_FILIACAO”, name = “SQ_ENDERECO_PROPON_PJ_FILIACAO”)
public class EnderecoProponentePjFiliacao extends Domain {
private static final long serialVersionUID = 1L;
private ProponentePjFiliacao proponentePjFiliacao;
private Long numCEP;
private String logradouro;
private String numero;
private String complemento;
private String bairro;
private String cidade;
private String estado;
private String idcCobranca;
//Transient
private String cep;
private String endCobranca;
private String numCobranca;
private String cepCobranca;
private String logradouroCobranca;
private String numeroCobranca;
private String complementoCobranca;
private String bairroCobranca;
private String cidadeCobranca;
private String estadoCobranca;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(generator = "SQ_ENDERECO_PROPON_PJ_FILIACAO")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "NUM_CEP", nullable = false)
public Long getNumCEP() {
return numCEP;
}
public void setNumCEP(Long numCEP) {
this.numCEP = numCEP;
}
@Column(name = "LOGRADOURO", nullable = false, length = 80)
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
@Column(name = "NUMERO", nullable = true, length = 10)
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@Column(name = "COMPLEMENTO", nullable = true, length = 100)
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
@Column(name = "BAIRRO", nullable = false, length = 70)
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
@Column(name = "CIDADE", nullable = false, length = 40)
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
@Column(name = "ESTADO", nullable = false, length = 2)
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
//@ManyToOne(fetch = FetchType.LAZY)
//@JoinColumn(name = "ID_PROPONENTE_PJ")
//@OneToOne(fetch = FetchType.LAZY, orphanRemoval = true)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID_PROPONENTE_PJ")
public ProponentePjFiliacao getProponentePjFiliacao() {
return proponentePjFiliacao;
}
public void setProponentePjFiliacao(
ProponentePjFiliacao proponentePjFiliacao) {
this.proponentePjFiliacao = proponentePjFiliacao;
}
@Transient
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
@Column(name = "IDC_COBRANCA")
public String getIdcCobranca() {
return idcCobranca;
}
public void setIdcCobranca(String idcCobranca) {
this.idcCobranca = idcCobranca;
}
@Transient
public String getEndCobranca() {
return endCobranca;
}
public void setEndCobranca(String endCobranca) {
this.endCobranca = endCobranca;
}
@Transient
public String getNumCobranca() {
return numCobranca;
}
public void setNumCobranca(String numCobranca) {
this.numCobranca = numCobranca;
}
@Transient
public String getCepCobranca() {
return cepCobranca;
}
public void setCepCobranca(String cepCobranca) {
this.cepCobranca = cepCobranca;
}
@Transient
public String getLogradouroCobranca() {
return logradouroCobranca;
}
public void setLogradouroCobranca(String logradouroCobranca) {
this.logradouroCobranca = logradouroCobranca;
}
@Transient
public String getNumeroCobranca() {
return numeroCobranca;
}
public void setNumeroCobranca(String numeroCobranca) {
this.numeroCobranca = numeroCobranca;
}
@Transient
public String getComplementoCobranca() {
return complementoCobranca;
}
public void setComplementoCobranca(String complementoCobranca) {
this.complementoCobranca = complementoCobranca;
}
@Transient
public String getBairroCobranca() {
return bairroCobranca;
}
public void setBairroCobranca(String bairroCobranca) {
this.bairroCobranca = bairroCobranca;
}
@Transient
public String getCidadeCobranca() {
return cidadeCobranca;
}
public void setCidadeCobranca(String cidadeCobranca) {
this.cidadeCobranca = cidadeCobranca;
}
@Transient
public String getEstadoCobranca() {
return estadoCobranca;
}
public void setEstadoCobranca(String estadoCobranca) {
this.estadoCobranca = estadoCobranca;
}
}[/code]
Classe de Teste (testNG)
[code]public class AssociadoServiceTest extends WebTransactionalSpringTestSupport {
@Autowired
private ConsultaCepService consultaCepService;
@Autowired
private ProponentePjFiliacaoService proponentePjFiliacaoService;
@Autowired
private EmailDadosCadastroAssociadoService emailDadosCadastroAssociadoService;
@Autowired
private PropostaFiliacaoService propostaFiliacaoService;
@Autowired
private EmailService emailService;
@Autowired
private ValidaFiliacaoService validaFiliacaoService;
@Autowired
private TipoValidacaoFiliacaoService tipoValidacaoFiliacaoService;
@Override
public String getStore() {
return super.getStore();
}
/**
* Cadastra Associado insert nas tabelas: proponente_pj_filiacao,
* endereco_propon_pj_filiacao, socio_proponente_filiacao,
* proposta_filiacao, validacao_proposta_filiacao controle número de
* tentativas de cadastro: cada tentativa update no campo
* NUM_TENTATIVAS_FILIACAO da tabela proposta_filiacao e insert na tabela
* validacao_proposta_filiacao setando "N" no campo IDC_PASSOU_VALIDACAO
* @throws MessageBrokerException
*/
@Test
@Rollback(value = true)
public void createAssociado() throws ParseException, MessageBrokerException {
String date_fundacao = "01/10/2010";
String date_aniversario = "01/10/1980";
SimpleDateFormat dt = new SimpleDateFormat("dd/mm/yyyy");
Date dtFundacao = dt.parse(date_fundacao);
Date dtAniversario = dt.parse(date_aniversario);
String cep = "28330201";
//consulta Entidade
FaixaCepFiliacao listaFxCepEntidade = consultaCepService.consultaFaixaCepEntidade(Long.parseLong(cep));
//consulta faturamento minimo (produto)
List<FaturamentoMinimo> listaFaturamentoMinimo = consultaCepService.consultaFaturamentoMinimo(Long.parseLong(cep));
//endereço empresa
EnderecoProponentePjFiliacao endereco = new EnderecoProponentePjFiliacao();
endereco.setCep(cep);
endereco.setLogradouro("Estrada da Casa Grande");
endereco.setNumero("s/n");
endereco.setComplemento("lado B");
endereco.setBairro("Campo Grande");
endereco.setCidade("Mogi Mirim");
endereco.setEstado("SP");
endereco.setIdcCobranca("N");
//endereço cobrança
endereco.setCepCobranca("38000000");
endereco.setLogradouroCobranca("Rua Espirito Santo");
endereco.setNumCobranca("296");
endereco.setComplementoCobranca("bloco b");
endereco.setBairroCobranca("marapé");
endereco.setCidadeCobranca("santos");
endereco.setEstadoCobranca("MG");
endereco.setIdcCobranca("S");
//sócio
SocioProponenteFiliacao socio = new SocioProponenteFiliacao();
socio.setNumCPF("308.211.258-77");
socio.setNome("Alexandre Miquelin");
socio.setDataNascimento(dtAniversario);
socio.setDddFoneResidencial(11L);
socio.setFoneResidencial("3555-1234");
//proponente
ProponentePjFiliacao proponente = new ProponentePjFiliacao();
proponente.setCnpjCompleto("02.290.277/0003-93");
proponente.setDataFundacao(dtFundacao);
proponente.setDddFone(11l);
proponente.setFone("3251-5865");
proponente.setNome("Kleenex Classic");
proponente.setRazaoSocial("Kimberly-Clarck Brasil");
proponente.setEmail("diretor@kimberkly.com.br");
proponente.setEmail2("diretor@kimberkly.com.br");
RamoAtividade ramo = new RamoAtividade();
ramo.setId(3702900l);
proponente.setEnderecoProponentePjFiliacao(endereco); --ERRO AKI
proponente.setSocio(socio);
proponente.setRamoAtividade(ramo);
//primeiro cadastro do cnpj informado
Assert.assertEquals(true, this.proponentePjFiliacaoService.createAssociado(proponente, "N", listaFaturamentoMinimo.get(0).getId(), proponente.getRamoAtividade().getId(), listaFxCepEntidade.getEntidade().getCodigoEntidade(), listaFxCepEntidade.getEntidade().getNome()));
}
}[/code]
o Erro esta na linha: proponente.setEnderecoProponentePjFiliacao(endereco);
Erro: The method setEnderecoProponentePjFiliacao(List) in the type ProponentePjFiliacao is not applicable for the arguments (EnderecoProponentePjFiliacao)
Alguem pode me ajudar??