[coldbox-3.6.0] Question about ORM vs DAO

In reading the model integration guide in the wiki I had a semi-lightbulb moment when I realized that ORM and DAO serve different purposes and what those purposes are.

In doing a bit of research I found this: http://stackoverflow.com/a/3014111/749227

My question is that with the ColdBox ORM functionality I don’t really see a way of calling the list() function with a persistent model and only having it grab the columns I need in a particular use case. If my table has a large number of columns and has some heavy data in it I’d prefer to only grab the lightweight few columns I need rather than mapping every column to a property and when I just need a little list of ids or something like that I don’t use the memory to store the full table :slight_smile:

It seemed like this was a job for a DAO and a nice little query that fetches just what I need, so that’s the route I went. But the StackOverflow answer made it seem like ORM is The Way To Go unless you do some empirical proof that the performance hit is too great. I don’t really like to have to go profiling the app - I’d rather have a good set of guiding principles and then address performance issues that are corner cases that make themselves apparent. (Maybe that’s the wrong way to go about it - I’m always open to suggestions and knowledge).

For a list of IDs, you can always use a CriteriaBuilder property projection…it will query and return only the properties you ask it to.