Hibernate - left join

Ola
Estou tentando fazer uma consulta no hibernate mas estou tendo problemas.
Estou tentando consultar as regras que possuem uma determinada pagina. Por exemplo… eu tenho as seguintes tabelas:

class Role{
private long pkRole;
private String name;
private Set<RoleXPage> roleXPages = new HashSet<RoleXPage>(0);
...}
class Page{
private long pkPage;
private String name;
private Set<RoleXPage> roleXPages = new HashSet<RoleXPage>(0);
...}
class RoleXPage{
private long pkRoleXPage;
private Page page;
private Role role;
...}

//tentei fazer a seguinte query:

"from Role as role
    left join roleXPages roleXpage
    left join roleXpage.Page page
where
    page.name='home' "

uma regra pode ter varias paginas e uma pagina pode ter varias regras

em sql eu faria:

select * 
from
	role as role
	left outer join role_x_page as roleXPage on role.pk_role = roleXPage.fk_role
	left outer join page as page on page.pk_page = roleXPage.fk_page
where
	page.name like ('home')

Desde ja muito obrigado

Ja tentou usar HQL ou CriteriaList?