Scala:从案例匹配中返回结果

时间:2013-09-03 22:54:25

标签: scala

我正在尝试编写一个帮助类来查询我的数据库。它看起来像这样:

object Injury {
  def logger =  LoggerFactory.getLogger(getClass)

    def find(teamId: Int = 0) {
        logger.info("teamId in find(): " + teamId)
        teamId match {
            case 0 => findAll
            case n => findById(n)
        }
    }

  def findAll = {
    val results = InjuryDAO.findAll
    results.map(grater[Injury].asObject(_)).toList
  }

  def findById(teamId: Int) = {
    //
  }

}

现在在我的控制器中,我只需拨打Injury.find(someId)并填写正确的结果即可。问题是我没有看到任何结果,所以我相信我的Scala逻辑在某处不正确。如果我直接从我的控制器拨打Injury.findAll,一切都很棒。在这种情况下,我传递一个0,用记录器验证它,但是应该调用findAll的case 0没有被正确触发。这里有明显的错误吗?

1 个答案:

答案 0 :(得分:1)

def find(teamId: Int = 0) {

=缺失,解释了为什么您的方法没有返回任何内容(Unit)。

应该是:

def find(teamId: Int = 0) = {