Problema com metodo dentro de classe Serializable, Hibernate

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;
	}
}

Cria então a propriedade:

ParceiroEndereco parceiroEnderecoPrincipal

Obrigado Rafael, funcionou certinho com sua idéia, mas com essa solução o meu código fica meio redundante, não?
Penso se não exisitiria uma forma mais limpa de simplismente fazer o hibernate ignorar aquele metodo ou simplismente não tentar converte-lo para Serializable?

Pessoal, o erro apenas mudou de nome, hehehehe.
Com a solução apontada pelo Rafael a Hibernate subiu certinho, mas quando eu realizo uma colsulta utilizando aquela classe ele dispara uma Exception:

PSQLException: ERROR: column parceiro0_.parceiroEnderecoPrincipal does not exist

Mas hoje eu dormi bem e meu cerebro voltou a funcionar, hehehe.
Encontrei uma solução mais interessante, na verdade eu apenas mudei no nome do metodo e tirei o ‘get’ do inicio.
Antes o metodo se chamava getParceiroEnderecoPrincipal agora eu troquei para retornaParceiroEnderecoPrincipal e o Hibernate ignora o metodo.
Acredito que ele faça uma busca por metodos iniciador por ‘get’ e ‘set’ e tenta mapear seus atributos.