I wouldn't use setMaxResults(1) in combination with uniqueResult().  It might mask the fact that something is wrong with the query, eg if the query would have returned multiple results.  If there's something wrong with the query, you want it to blow up so that you can detect and fix the bug.