почему у вас TT_Id , а не TT в RR ?ИМО сделает многое намного сложнее, чем нужно.
, если он будет ссылаться на TT , тогда
resultlist = session.CreateCriteria<RR>()
.CreateCriteria("TT")
.Add(Restrictions.Not(Restrictions.Eq("Type", 7)))
.List<RR>();
в противном случае
var subquery = DetachedCriteria.For<TT>()
.Add(Restrictions.Not(Restrictions.Eq("Type", 7)))
.SetProjection(Projections.Id());
resultlist = session.CreateCriteria<RR>()
.Add(Subqueries.In("TT_id", subquery)))
.List<RR>();
или
IList<object[]> resultlist = session.CreateSqlQuery("SELECT RR.* FROM RR LEFT OUTER JOIN TT ON R.TT_Id = TT.Id WHERE TT.Type <> 7 ")
.List().Cast<object[]>();
// hydrate RR yourself here