Problema com left join de tabela com view de sistema legado e mapeamento de native query

Oi pessoal,

Estou com problemas em uma query que tem join das tabelas do meu sistema com view de um sistema legado.

Estou com problemas de relacionamento dessas duas classes:

[code]@SuppressWarnings(“serial”)
@Entity
@Table(name=“VWEC_RELATORES”)
public class RelatorDadosVO extends AbstractVO implements IRelatorVO {

@Id 
@SequenceGenerator(name = "REL_ID_D", sequenceName = "SQ_RELATOR", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "REL_ID_D")
@Column(name = "ID_RELATOR_SPL" , unique = true, nullable = false)
@OrderBy("DT_SISTEMA DESC" )
private Long id;

@OneToMany(mappedBy = "relator", fetch=FetchType.LAZY)	
private List<DocumentoRelatorVO> documentosRelator;

@OneToMany(mappedBy = "relatorDoc", fetch=FetchType.LAZY)	
private List<DocumentoRelatorVO> documentosRelatorDoc;

@Column(name = "ID_DOCUMENTO", nullable = false, insertable=false, updatable=false)
private Long idDocumento;

@Column(name = "ID_DOCUMENTO_SPL", nullable = false, insertable=false, updatable=false)
private Long idDocumentoSPL;	

@Column(name = "ID_COMISSAO_SPL", nullable = false, insertable=false, updatable=false)
private Long idComissaoSPL;


@Column(name="NM_RELATOR", nullable=true)
private String nMRelator;

@Temporal(TemporalType.TIMESTAMP)
@Column(name="DT_SISTEMA", nullable=true)
private Calendar dtSistema;

@Column(name="FL_ATIVO", nullable=true)
private String ativo;	 

// gets, setters

}[/code]

[code]@Entity
@Table(name=“TBEC_DOCUMENTO_RELATOR”)
public class DocumentoRelatorVO extends AbstractVO implements IDocumentoRelatorVO {

@Id
@SequenceGenerator(name="TBEC_DOCUMENTO_RELATOR_ID_GENERATOR", sequenceName="SQ_DOCUMENTO_RELATOR", allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO, generator="TBEC_DOCUMENTO_RELATOR_ID_GENERATOR")
@Column(name="ID_DOCUMENTO_RELATOR", unique=true, nullable=false)
@OrderBy("ID_DOCUMENTO_RELATOR DESC" )
private Long id;

@ManyToOne(fetch=FetchType.LAZY)	
@JoinColumn(name="ID_RELATOR_SPL",  updatable=false, insertable=false,nullable=true)  
private RelatorVO relator;


@ManyToOne(fetch=FetchType.LAZY)	
@JoinColumn(name="ID_RELATOR_SPL",  updatable=false, insertable=false,nullable=true) 
private RelatorDadosVO relatorDados;

@ManyToOne(fetch=FetchType.LAZY)	
@JoinColumn(name="ID_DOCUMENTO",  updatable=false, insertable=false,nullable=true)
private RelatorDadosVO relatorDoc;

//bi-direcional many-to-one associação para DocumentoVO
@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.LAZY)
@JoinColumn(name="ID_DOCUMENTO" ,nullable=true)
private DocumentoVO documentos;


//bi-direcional many-to-one associação para DocumentoVO
@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.LAZY)

@JoinColumns({  
    @JoinColumn(name = "ID_DOCUMENTO", referencedColumnName = "ID_DOCUMENTO", insertable=false, updatable=false),  
    @JoinColumn(name = "ID_COMISSAO", referencedColumnName = "ID_COMISSAO", insertable=false, updatable=false)  
})
private DocumentoComissaoVO documentosComissao;

// TODO Deve ser usado TIMESTAMP ou DATE?
@Temporal(TemporalType.TIMESTAMP)
@Column(name="DT_DISTRIBUICAO_RELATOR", nullable=true)
private Date dataDistribuicao;

// TODO Deve ser usado TIMESTAMP ou DATE?
@Temporal(TemporalType.TIMESTAMP)
@Column(name="DT_MANIFESTACAO_RELATOR", nullable=true)
private Date dataManifestacao;

//bi-direcional many-to-one associação para TipoManifestacaoVO
@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER)
@JoinColumn(name="ID_TIPO_MANIFESTACAO")	
private TipoManifestacaoVO tiposManifestacoes;

@Column(name="ID_RELATOR_SPL", nullable=false)
private Long idRelatorSPL;

@Column(name="ID_COMISSAO", nullable=false)
private Long idComissao;

@Column(name="FL_ATIVO", nullable=true)
private String ativo;	


//unidirecional one-to-many associação para LogDocumentoVO
@OneToMany(cascade={CascadeType.ALL, CascadeType.MERGE},fetch=FetchType.LAZY)
@JoinColumn(name="ID_DOCUMENTO_RELATOR")
private List<LogDocumentoRelatorVO> logsDocumentoRelator;

    // gets, setters

}[/code]

Nessa query:

select doc_comissao.ID_DOCUMENTO_COMISSAO, doc_comissao.FL_ATIVO, doc_comissao.ID_COMISSAO, doc_comissao.DT_ENTRADA_COMISSAO, doc_comissao.DT_SAIDA_COMISSAO, doc_comissao.TX_DS_SAIDA_COMISSAO, doc_comissao.ID_DOCUMENTO, doc.ID_DOCUMENTO, doc.ID_DOCUMENTO_STATUS, doc.ID_DOCUMENTO_SPL, doc.ID_TIPO_DOCUMENTO, v_docs.ID_DOCUMENTO, v_docs.TP_PARTICIPANTE, v_docs.ID_DOCUMENTO_SPL, v_docs.ID_NATUREZA, v_docs.ID_PARTICIPANTE, v_docs.ID_TIPO_DOCUMENTO, v_docs.NM_NATUREZA, v_docs.NM_PARTICIPANTE, v_docs.NR_ANO_LEGISLATIVO, v_docs.NR_LEGISLATIVO, doc_status.ID_DOCUMENTO_STATUS, doc_status.TX_NM_DOCUMENTO_STATUS, tp_doc.ID_TIPO_DOCUMENTO, tp_doc.TX_NM_TIPO_DOCUMENTO, doc_relator.ID_DOCUMENTO, doc_relator.ID_COMISSAO, doc_relator.ID_DOCUMENTO_RELATOR, doc_relator.ID_DOCUMENTO_RELATOR, doc_relator.FL_ATIVO, doc_relator.DT_DISTRIBUICAO_RELATOR, doc_relator.DT_MANIFESTACAO_RELATOR, doc_relator.ID_DOCUMENTO, doc_relator.ID_COMISSAO, doc_relator.ID_RELATOR_SPL, doc_relator.ID_TIPO_MANIFESTACAO, relatores.ID_RELATOR_SPL, relatores.FL_ATIVO, relatores.DT_SISTEMA, relatores.ID_COMISSAO_SPL, relatores.ID_DOCUMENTO, relatores.ID_DOCUMENTO_SPL, relatores.NM_RELATOR, tp_manifest.ID_TIPO_MANIFESTACAO, tp_manifest.TX_NM_TIPO_MANIFESTACAO from TBEC_DOCUMENTO_COMISSAO doc_comissao, TBEC_DOCUMENTO doc, VWEC_DOCUMENTOS v_docs, TBEC_DOCUMENTO_STATUS doc_status, TBEC_TIPO_DOCUMENTO tp_doc, TBEC_DOCUMENTO_RELATOR doc_relator, VWEC_RELATORES relatores, TBEC_TIPO_MANIFESTACAO tp_manifest where doc_comissao.ID_DOCUMENTO = doc.ID_DOCUMENTO(+) and doc.ID_DOCUMENTO = v_docs.ID_DOCUMENTO(+) and doc.ID_DOCUMENTO_STATUS = doc_status.ID_DOCUMENTO_STATUS(+) and doc.ID_TIPO_DOCUMENTO = tp_doc.ID_TIPO_DOCUMENTO(+) and doc_comissao.ID_DOCUMENTO = doc_relator.ID_DOCUMENTO(+) and doc_comissao.ID_COMISSAO = doc_relator.ID_COMISSAO(+) --and doc_relator.ID_DOCUMENTO = relatores.ID_DOCUMENTO(+) and doc_relator.ID_RELATOR_SPL = relatores.ID_RELATOR_SPL(+) and doc_relator.ID_TIPO_MANIFESTACAO = tp_manifest.ID_TIPO_MANIFESTACAO(+) and doc_comissao.ID_COMISSAO = 6 and doc.ID_TIPO_DOCUMENTO = 1 order by v_docs.NR_ANO_LEGISLATIVO asc, v_docs.NR_LEGISLATIVO asc, relatores.DT_SISTEMA desc, doc_relator.ID_DOCUMENTO_RELATOR desc

Não consigo fazer o relacionamento da linha comentada. Nem com Criteria, nem com o HQL. É possível fazer esse relacionamento usando isso?

Tentei realizar essa query com Native Query, mas na hora de mapear o objeto aparece um tal de PersistentBag e não consegui avançar.

Desde já agradeço pela ajuda.