title: How to think Slick?
body: <p>I'm struggling a bit in Slick and i'm a recent Scala/Slick adopter. I'm used to Hibernate and/or Rails ActiveRecord but i'm having a bit difficulty joining plenty of tables.</p>
  
  <p>I have the Following class pattern.</p>
  
  <pre><code>case class User(id: UUID, ..., profile: UserProfile)
  case class UserProfile(id: UUID, ..., address: Address)
  case class Address(id: UUID, ...)
  </code></pre>
  
  <p>I'm trying to have this as a Domain Model and having the Persistence Layer just fetch and join the tables to return a domain single object.</p>
  
  <ol>
  <li>Is is the right way to do it in slick?</li>
  <li>Is there anyway to cache the Query Results instead of being constantly querying the database?</li>
  <li>Does this <a href="https://github.com/strongtyped/active-slick/" rel="nofollow">Lib</a> help?</li>
  <li>What's the best way of joining for example these 3 tables? 1 Query to each of them via separate DAO's or Inner Joins and use Scala's groupBy ?</li>
  </ol>
  
  <p>Sorry if this is a "newbish" question. I'm just trying to figure out how to "Think Slick".</p>