Either fetch all the roles in a collection, and fetch the roles attached to this specific user in another collection, and then you can find the matches.
You can also fetch those that he is attached to and those which he is not attached to with something like:
SELECT * FROM Role WHERE RoleID NOT IN (SELECT RoleID FROM UserInfoRole WHERE UserID = xx)
And remove the NOT part for the other collection.
This query can be built using FieldCompareSetPredicate, please refer to the manual "Using the generated code -> Adapter/SelfServicing -> Filtering and sorting -> the predicate system"