请问这样的查询怎样用HQL语法来写!

如题:
select u from User u left join u.roleList r where r.id=?
这个HQL能通过角色ID查询出拥有这个角色的User列表。
如果我换成select u from User u left join u.roleList r where r.id<>?这个HQL语句
按我的理解是能够查询出没有拥有这个角色的User列表。这个结果是正确的。
但是这个语句执行的前提是在user对象拥有角色的情况下,却不能查询出user对象没有拥有角色(也就是roleList为空的情况)的user列表。
请问各位大侠我该如何修改这个HQL语句,使用Criteria的方式也是如此。

请帮忙解决一下,万分感谢,谢谢。

select u from User u left join u.roleList r where r.id<>? or r.id is empty