Fix: Add @Transactional(readOnly = true) to DashboardController
Hibernate's getCurrentSession() requires a transaction context.
Using readOnly=true provides session context with optimizations:
- No row-level locks acquired
- DB can optimize for read-only queries
- Shorter connection hold time than read-write transactions