Criteria com JPA

Olá pessoal, esotu usando o JPA com Hibernate para persistência. Tenho uma tabela usuario no banco, e na classe Usuario, faço o mapeamento da lista de amigos:

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Usuario> amigos;

@ManyToMany(mappedBy = "amigos", fetch = FetchType.LAZY)
private Set<Usuario> amigados;

No banco o Hibernate criou a tabela “usuario_usuario”, com dois campos: amigos_id e amigados_id. Até aqui blz, tenho um DAO que retorna uma lista de amigos com a seguinte query e funciona de boa:

SELECT amigo FROM Usuario u JOIN u.amigos amigo

Acontece que essa query é mto lenta, pois se um usuário tem uns 500 amigos, demora demais. O Hibernate cria uma query do tamanho do universo pra me trazer essa lista.
Fiz uma query no MySQL que vai direto no indice da tabela usuario_usuario:

SELECT amigados_id FROM usuario_usuario WHERE amigos_id = 123

Essa query seria perfeita, pois ela me traz o indice na mesma hora. É praticamente instantanea.
Em vez de usar query normal (JPAQuery), passei a usar queryNativa do JPA. O problema está em criar esta query nativa no JPA.

public List<Usuario> getAmigos(Usuario usuario) {
		Query q = entityManager.createNativeQuery("SELECT amigos_id FROM usuario_usuario WHERE amigados_id = :idUsuario", Usuario.class);
		q.setHint("org.hibernate.cacheable", true);
		q.setParameter("idUsuario", usuario.getId());
		return getQueryResultList(q);
}

Ele me retorna um => java.sql.SQLException: Column ‘id’ not found. Parece que ele não tá identificando aquele campo (amigos_id) com um usuário em si, mesmo fazendo o cast.

Pesquisei, procurei e ainda nao achei uma forma de fazer o hibernate associar o campo "amigados_id" com um "objeto" Usuario. Tenho que criar uma classe só pra esse relacionamento?
Agradeço a atenção

tenta assim
amigados_id = ?

[quote=kdoigor]tenta assim
amigados_id = ?[/quote]

Valeu. Mas continua com o mesmo erro…