I was trying to avoid going to the db twice.
Well, consider these (in no particular order of importance)
1. A user waiting for one web page to display and then a second page to display takes many seconds. Two calls to a database is a fraction of this.
2. A user may not make the a second request so you are now delaying responses for every user to accommodate the subset of users that request the second page.
3. It
really simplifies the design so it's much easier to support
4. Your users will never see the difference that you make two database requests vs. one.
5. Absolute efficiency is not the only criteria in an application design. See the big picture.
6. Is reading all the data from the database in one call and storing it in the application server really more efficient then making two calls to the database?
7. By doing your own caching, you are bypassing any caching that the database already does.
8. Don't complicate design by prematurely designing for efficiency.