Persistir OneToMany - JPA2 + Spring

0 respostas
I

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:

@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;
    }
}
Classe de Teste (testNG)
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("[CPF removido]");
        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("[email removido]");
        proponente.setEmail2("[email removido]");
        
        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()));
       
    }
}

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??

Criado 13 de janeiro de 2014
Respostas 0
Participantes 1