[RESOLVIDO] Como fazer essa HQL

Olá a todos,

Tenho que fazer uma HQL para me retornar um List de servidores que não estejam em um determinado Evento, estou me batendo aqui a algum tempo e não consegui fazer, na verdade nem manjo muito de HQL.

// Classes envolvidas.

class Servidor{
   private Long id;
    private List<Evento> eventos;
}
class Evento{
   private Long id;
  private List<Servidor> servidores;
}

Passando para a HQL o ID do Evento atual, tenho que fazer retornar um list dos servidores que não estejam relacionados com esse determinado Evento.

Agradeço qualquer ajuda.

Abraços.

Pessoal estou quebrando a cabeça aqui. Se alguem puder ajudar.

Session session = HibernateUtil.getSession();

		String sql = "select ser from Servidor ser, Evento ev where " +
				" ser not in (ev.servidores) and ev.id = 2";
		try {
			Query q = session.createQuery(sql);
			
			List<Object> dados = q.list();
			
			System.out.println("Servidores que nao estão no evento");
			for (Object object : dados) {
				Servidor e = (Servidor) object;
				System.out.println(e.getMatricula());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

Está retornando erro de sintaxe de HQL.

01:43:33,197  WARN JDBCExceptionReporter:77 - SQL Error: -1, SQLState: 42X01
01:43:33,198 ERROR JDBCExceptionReporter:78 - Erro de sintaxe: Encountered "." at line 1, column 465.
org.hibernate.exception.SQLGrammarException: could not execute query
String sql = 
			"select s.nome from servidor s where s.id not in"
			+"(select s.id from evento_servidor ev where " +
			" ev.SERVIDORES_ID = s.id and ev.EVENTOS_ID = 2)";
		try {
			Query q = session.createSQLQuery(sql);

			Object o = q.uniqueResult();
			System.out.println(o.toString());
		} catch (Exception e) {
			e.getMessage();
		}