Problema em um join com consulta hql

[quote=winigma]Bom pq eu sempre terei requisicao, e as vezes cotacao,…

HQL nao tem todos os recursos de do SQL, se dar pra fazer em sql não é pra ser possível ser feito em hql?[/quote]
HQL tem sim todos os recursos de SQL, porém, é preciso entender que SQL e HQL são diferentes entre si.
Eu creio que, no teu caso, você está pensando estruturado demais.
Creio que isso resolve

String hql = "Select c.requisicao FROM Cotacao c WHERE c.requisicao.id IS NOT NULL";

Como eu sei que deve ser isso?
Simples, eu criei uma associação entre os dois, para testar e fiz a seguinte consulta

String hql = "Select c.requisicao FROM Cotacao c WHERE c.requisicao.id <> 2";
		
		List<Requisicao> lista = session.createQuery(hql).list();
		
		for(Requisicao rs : lista){
			System.out.println(rs.getId() + " " + rs.getNumSequencia());
		}

Quando executei, tive os seguintes resultados

select requisicao1_.id as id0_, requisicao1_.ANO_SEQ as ANO2_0_, requisicao1_.NUM_SEQ as NUM3_0_ from COTACAO cotacao0_ inner join REQUISICAO requisicao1_ on cotacao0_.ID_REQUISICAO=requisicao1_.id where cotacao0_.ID_REQUISICAO<>2
1 123
3 123
4 123
5 123
6 123

Agora é com você, caro camaradinha.

Mas vc deixou as entidades do jeito que criei?

Se estiverem iguais a minha entidade, fiz o seguinte:

List<Requisicao> requisicoes = entityManager
				.createQuery(
						"Select c.requisicao FROM Cotacao c WHERE c.requisicao.id <> 2")
				.getResultList();
		// hql.append("left join  Cotacao c where c.requisicao = re ");

		return requisicoes;

E retorna nulo!!!

Iguais não tem como, não acha?
Aí vão as que eu criei.

@Entity
@Table(name = "COTACAO")
public class Cotacao implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "ID")
	private Long id;

	@Temporal(TemporalType.DATE)
	@Column(name = "DT_REQUISICAO")
	private Date dataFechamento;

	@JoinColumn(name = "ID_REQUISICAO", nullable = true)
	@ManyToOne(fetch = FetchType.LAZY)
	private Requisicao requisicao;
//getters e setters
}
@Entity
@Table(name = "REQUISICAO")
public class Requisicao implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	@Column(name = "NUM_SEQ")
	private Integer numSequencia;

	@Column(name = "ANO_SEQ")
	private Integer anoSequencia;

	public Long getId() {
		return id;
	}
//getters e setters
}