title: scala slick 2.0.2 cannot automatic map to custom class
body: <p>I'm starting to play with Slick and i can't figure out how to get results of query mapped on my custom case class.
  Here's my code:</p>
  
  <pre><code>package main.scala.model.Tree
  
  import scala.slick.driver.H2Driver.simple._
  
  case class SlickNode(id : Long, parentId : Long, stateString : String) 
      extends AbstractNode{}
  
  object SlickNode {
      val nodes = TableQuery[SlickNodes]
      def findById(x : Long) : SlickNode = nodes.filter(_.id == x).first
      def findByParentId(x : Long) : Iterable[SlickNode] = nodes.filter(_.parentId == x).list
  
  }
  
  class SlickNodes(tag: Tag) extends Table[(Long, Long, String)](tag, "NODES") {
      def id = column[Long]("NODE_ID", O.PrimaryKey, O.AutoInc)
      def parentId = column[Long]("PARENT")
      def stateString = column[String]("STATE")
      def * = (id, parentId, stateString) &lt;&gt; ((SlickNode.apply _).tupled , SlickNode.unapply)
  }
  </code></pre>
  
  <p>What I expected was the automatic conversion from (Long, Long, String) to SlickNode as stated in the * definition.
  Am I missing something? 
  Thank you in advance.
  Kind Regards</p>
  
  <p><strong>*********</strong> EDIT <strong>*********</strong>
  I think the problem is deeper in my code. 
  When i try to compile it I get this error: </p>
  
  <pre><code>[error] No matching Shape found.
  [error] Slick does not know how to map the given types.
  [error] Possible causes: T in Table[T] does not match your * projection. Or you use an unsupported type in a Query (e.g. scala List).
  [error]   Required level: scala.slick.lifted.ShapeLevel.Flat
  [error]      Source type: scala.slick.lifted.MappedProjection[main.scala.model.Tree.SlickNode,(Long, Long, String)]
  [error]    Unpacked type: (Long, Long, String)
  [error]      Packed type: Any
  [error]   def * = (id, parentId, stateString) &lt;&gt; ((SlickNode.apply _).tupled , SlickNode.unapply)
  [error]                                       ^
  </code></pre>