Erro:
java.sql.SQLException: ORA-01445: não é possível selecionar nem gerar amostragem para ROWID em uma view de junção sem uma tabela preservada com chaves.
Esse é um Bug do Oracle que afeta ao menos as versões:
9.2.0.6
10.1.0.4
10.2.0.1
10.1.0.4
10.2.0.1
O erro ocorre quando o retorno da SQL excede certo número de colunas. Esse número excessivo de colunas é geralmente causado por joins (principalmente quando utiliza-se um framework de persistência ex: Hibernate).
Para resolver o problema:
1) Atualize a versão do Oracle:
9.2.0.8
10.1.0.5
10.2.0.2
11g
Ou
2) Adicione @Fetch(FetchMode.SELECT)a alguns de seus relacionamentos. Com isso, será gerado um SQL a parte, o que fará com que o primeiro SQL não tenha o limite de coluna excedido.
Ex:
@OneToOne
@Fetch(FetchMode.SELECT)
@JoinColumn(name="agentecarga_id", insertable=false,updatable=false)
private Contato agenteCarga;