Join JPA @OneToMany

Galera, estou há varias horas pesquisando e não consegui resolver. Agradeço ajudas.
Quero fazer em JPA a query abaixo que retorna exatemente o que quero do banco de dados.
Como seria o código desse select em JPA?
Segue abaixo como estão modeladas as classes.

Obrigado.

SELECT

USU.CO_SEQ_USUARIO,
USU.NO_USUARIO,
CO.CO_SEQ_CONTA,
CO.NO_CONTA,
TIPCO.NO_TIPO_CONTA,
TIPCO.DS_CONTA
FROM
TB_USUARIO_PORTAL USU,
TB_CONTA CO,
TB_TIPO_CONTA TIPCO
WHERE
CO.CO_SEQ_CONTA=USU.CO_CONTA AND
TIPCO.CO_SEQ_TIPO_CONTA=CO.CO_TIPO_CONTA;

[code]public interface DaoGenerico<T, ID extends Serializable> {
public Class getObjectClass();

    //Demais métodos

public List<T> listaContaUsuario();

}[/code]

[code]@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public class DaoGenericoImp<T, ID extends Serializable>
implements DaoGenerico<T, ID> {

//Interface responsável pelas operações de persitência
private EntityManager entityManager; 

private final Class<T> oClass;//object class

public Class<T> getObjectClass() {
	return this.oClass;
}

@PersistenceContext
public void setEntityManager(EntityManager em) {
	this.entityManager = em;
}


protected EntityManager getEntityManager() {
	if (entityManager == null)
		throw new IllegalStateException("Erro");
	return entityManager;
}

@SuppressWarnings("unchecked")
public DaoGenericoImp() {
	this.oClass = (Class<T>)
	( (ParameterizedType) getClass().getGenericSuperclass() ).getActualTypeArguments()[0];
}

public List<T> listaContaUsuario(){
	
          //Select em JPA. 
}

}[/code]

[code]@Entity
@Table(name=“tb_usuario_portal”, schema=“ecommerce”)
public class UsuarioPortal implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="co_seq_usuario")
private Integer codUsuario;

@Column(name="co_conta")
private Integer codConta;

//Demais atributos

//getters & setters

}[/code]

[code]@Entity
@Table(name=“tb_conta”, schema=“ecommerce”)
public class Conta implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="co_seq_conta")
private Integer codConta;

@Column(name="co_tipo_conta")
private Integer codTipoConta;

//Demais atributos

@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
private Set<UsuarioPortal> usuariosPortal;

//getters & setters

}[/code]

Troca para:

 @OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)  
    private Set<UsuarioPortal> usuariosPortal;  

Acho que é isso

Bom, consegui resolver, não sei se existe uma maneira melhor.
Retorna uma lista de objetos onde cada objeto contém os dados do relacionamento.

Segue o código caso sirva para alguém.

String queryS = "FROM UsuarioPortal up, Conta c, TipoConta tc WHERE c.codConta=up.codConta AND tc.codTipoConta=c.codTipoConta"; Query query = getEntityManager().createQuery(queryS); List<UsuarioPortal> lista = query.getResultList();

giovanni_dalfre não é isso não. Eu não sabia como fazer a query em JPA. Mas vlw.

Ops, descobri que não está totalmente certo. A query funciona, mas a busca deveria trazer uma lista onde cada item da lista fosse um objeto com os atributos descritos na query. E está trazendo uma lista de Ojects e cada objeto com as entidades descritas na query. Desse jeito não dá pra popular o rich:datatable.