So my question is fairly similar to the one in Finding all entries where a collection field contains any of the given items
Except that rather than:
List<Message> findDistinctByTagsIn(Set<Tag> tag);
returning all Messages with ANY of the given tags, I'd like to know the syntax for a query that will only return messages that contain ALL of the given tags.