The cost of keeping slick and db details hidden is an extreme lack of flexibility. For example, it's necessary to have a find method for every single combination of parameter I want to query based on, and I can't easily compose queries.
It seems like that in order to use slick effectively I have to have many layers of the application using it directly. The lack of encapsulation/modularity worries me.
1. Is there a way to keep the persistence layer neatly encapsulated without losing flexibility and the key functionality that makes slick useful?
2. Alternately, is neatly encapsulating the persistence layer a misguided goal?
Thanks,
-John