To be fair, both approaches have the same amount of complexity. The difference is that:
- in the one approach:
- the complexity is hidden behind the implementation of templates
- it is easier to add/remove fields as needed
- there is not much room for customization
- that needs advanced queries
- in the other approach:
- the complexity is “hidden” behind the complicated query
- it is harder to add/remove fields
- it is possible (though not easy) to customize the output a lot
But in the coming database version, properties will become much better, and this discussion will get on a different level.