Boa Tarde pessoal, dei uma pesquisada na web e no forum e não encontrei nada relacionado ao meu problema.
O problema é o seguinte, tenho uma classe Parceiro que possui um lista de endereços chamada ParceiroEndereco, mas um Parceiro pode ter varios enderecos e eu quero buscar apenas um endereço principal por isso criei um metodo chamado getParceiroEnderecoPrincipal que retorna apenas o endereço principal.
Ok, porem quando estou iniciando o Hibernate ele dispara um erro:
org.hibernate.PropertyNotFoundException: Could not find a setter for property parceiroEnderecoPrincipal in class br.com.polipex.bean.pessoa.Parceiro
Eu não sei bem oque o hibernate esta tentando fazer, mas acho que ele esta achando que como o metodo que eu criei se chama getParceiroEnderecoPrincipal deve existir um atributo chamado parceiroEnderecoPrincipal com metodos get/set, e isso não ocorre.
Imagino que deva existir alguma anotação para que o hibernate ignore esse metodo, ou algo parecido, alguem tem alguma idéia que possa ajudar?
Segue o codigo da classe:
@Entity
@Table(name = "parceiro", schema = "pessoa")
public class Parceiro implements java.io.Serializable {
private long parCodigo;
private String parDescricao;
private String parNomeFantasia;
private Date parDataCadastro;
private Date parDataOrigem;
private String parObservacao;
private Character parTipoPessoa;
private Integer filCodigo;
private String parSite;
private byte[] parImagem;
private Long parCodigoTransportadora;
private Integer forCodigo;
private Integer oriCodigo;
private Integer ptpCodigo;
private String parEnviarEmailAposFtr;
private Integer ppgCodigo;
private ParceiroAcesso parceiroAcesso ;
private PessoaJuridica pessoaJuridica;
private List<ParceiroEndereco> parceiroEnderecos;
public Parceiro() {
}
public Parceiro(long parCodigo) {
this.parCodigo = parCodigo;
}
public Parceiro(long parCodigo, String parDescricao,
String parNomeFantasia, Date parDataCadastro, Date parDataOrigem,
String parObservacao, Character parTipoPessoa, Integer filCodigo,
String parSite, byte[] parImagem, Long parCodigoTransportadora,
Integer forCodigo, Integer oriCodigo, Integer ptpCodigo,
String parEnviarEmailAposFtr, Integer ppgCodigo) {
this.parCodigo = parCodigo;
this.parDescricao = parDescricao;
this.parNomeFantasia = parNomeFantasia;
this.parDataCadastro = parDataCadastro;
this.parDataOrigem = parDataOrigem;
this.parObservacao = parObservacao;
this.parTipoPessoa = parTipoPessoa;
this.filCodigo = filCodigo;
this.parSite = parSite;
this.parImagem = parImagem;
this.parCodigoTransportadora = parCodigoTransportadora;
this.forCodigo = forCodigo;
this.oriCodigo = oriCodigo;
this.ptpCodigo = ptpCodigo;
this.parEnviarEmailAposFtr = parEnviarEmailAposFtr;
this.ppgCodigo = ppgCodigo;
}
@Id
@Column(name = "par_codigo", unique = true, nullable = false, precision = 15, scale = 0)
public long getParCodigo() {
return this.parCodigo;
}
public void setParCodigo(long parCodigo) {
this.parCodigo = parCodigo;
}
@Column(name = "par_descricao", length = 150)
public String getParDescricao() {
return this.parDescricao;
}
public void setParDescricao(String parDescricao) {
this.parDescricao = parDescricao;
}
@Column(name = "par_nome_fantasia", length = 150)
public String getParNomeFantasia() {
return this.parNomeFantasia;
}
public void setParNomeFantasia(String parNomeFantasia) {
this.parNomeFantasia = parNomeFantasia;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "par_data_cadastro", length = 29)
public Date getParDataCadastro() {
return this.parDataCadastro;
}
public void setParDataCadastro(Date parDataCadastro) {
this.parDataCadastro = parDataCadastro;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "par_data_origem", length = 29)
public Date getParDataOrigem() {
return this.parDataOrigem;
}
public void setParDataOrigem(Date parDataOrigem) {
this.parDataOrigem = parDataOrigem;
}
@Column(name = "par_observacao")
public String getParObservacao() {
return this.parObservacao;
}
public void setParObservacao(String parObservacao) {
this.parObservacao = parObservacao;
}
@Column(name = "par_tipo_pessoa", length = 1)
public Character getParTipoPessoa() {
return this.parTipoPessoa;
}
public void setParTipoPessoa(Character parTipoPessoa) {
this.parTipoPessoa = parTipoPessoa;
}
@Column(name = "fil_codigo")
public Integer getFilCodigo() {
return this.filCodigo;
}
public void setFilCodigo(Integer filCodigo) {
this.filCodigo = filCodigo;
}
@Column(name = "par_site", length = 150)
public String getParSite() {
return this.parSite;
}
public void setParSite(String parSite) {
this.parSite = parSite;
}
@Column(name = "par_imagem")
public byte[] getParImagem() {
return this.parImagem;
}
public void setParImagem(byte[] parImagem) {
this.parImagem = parImagem;
}
@Column(name = "par_codigo_transportadora", precision = 15, scale = 0)
public Long getParCodigoTransportadora() {
return this.parCodigoTransportadora;
}
public void setParCodigoTransportadora(Long parCodigoTransportadora) {
this.parCodigoTransportadora = parCodigoTransportadora;
}
@Column(name = "for_codigo")
public Integer getForCodigo() {
return this.forCodigo;
}
public void setForCodigo(Integer forCodigo) {
this.forCodigo = forCodigo;
}
@Column(name = "ori_codigo")
public Integer getOriCodigo() {
return this.oriCodigo;
}
public void setOriCodigo(Integer oriCodigo) {
this.oriCodigo = oriCodigo;
}
@Column(name = "ptp_codigo")
public Integer getPtpCodigo() {
return this.ptpCodigo;
}
public void setPtpCodigo(Integer ptpCodigo) {
this.ptpCodigo = ptpCodigo;
}
@Column(name = "par_enviar_email_apos_ftr", length = 1)
public String getParEnviarEmailAposFtr() {
return this.parEnviarEmailAposFtr;
}
public void setParEnviarEmailAposFtr(String parEnviarEmailAposFtr) {
this.parEnviarEmailAposFtr = parEnviarEmailAposFtr;
}
@Column(name = "ppg_codigo")
public Integer getPpgCodigo() {
return this.ppgCodigo;
}
public void setPpgCodigo(Integer ppgCodigo) {
this.ppgCodigo = ppgCodigo;
}
@OneToOne(optional = true, cascade= CascadeType.ALL)
@JoinColumn(name="par_codigo", updatable = true)
public ParceiroAcesso getParceiroAcesso() {
return parceiroAcesso;
}
@OneToOne(optional = true, cascade= CascadeType.ALL)
@JoinColumn(name="par_codigo", updatable = true)
public PessoaJuridica getPessoaJuridica() {
return pessoaJuridica;
}
public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
this.pessoaJuridica = pessoaJuridica;
}
@OneToMany(cascade= CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name="par_codigo", updatable = true)
public List<ParceiroEndereco> getParceiroEnderecos() {
return parceiroEnderecos;
}
public void setParceiroEnderecos(List<ParceiroEndereco> parceiroEnderecos) {
this.parceiroEnderecos = parceiroEnderecos;
}
public void setParceiroAcesso(ParceiroAcesso parceiroAcesso) {
this.parceiroAcesso = parceiroAcesso;
}
@NotFound
public ParceiroEndereco getParceiroEnderecoPrincipal(){
ParceiroEndereco retorno = null;
for (ParceiroEndereco end : getParceiroEnderecos()){
if(end.getPaeEnderecoCorrespondencia().equalsIgnoreCase("S")){
retorno = end;
} else if (end.getPaeEnderecoCobranca().equalsIgnoreCase("S") && retorno == null){
retorno = end;
}
}
return retorno;
}
}