I haven't touched DQL yet, my feeling was that this would not lead to more code in the DQL parts than your approach with explicit sub classes.

The dot is actually a pretty nice trick to prevent collisions, because its not a valid field name sign, and reads naturally in our DQL syntax.