Generated DTOs do not have a reference to related objects if the related object does not have at least one external ID field. The logic for this was probably that you can't use a related object in upserts if that related object doesn't have an external Id field. There are two issues with this. 1) you can upsert on the standard `Id` field, and 2) there's nowhere to put the related objects returned in a parent-to-child relationship query.
e.g. the result from this query
will not contain the RecordType object, because RecordType was not in the DTO Java class.