在Play for Scala中实现JPA查询

时间:2017-09-07 01:43:30

标签: scala playframework playframework-2.0 playframework-2.5

我试图在Play for Scala中实现JPA,遵循Java中记录的these examples

在以下代码中,我在jpaApi.withTransaction中收到了编译错误:

class ManageBanks @Inject() (jpaApi: JPAApi) extends Controller {

   @Transactional
   def readMany = {
      val em = jpaApi.em

      jpaApi.withTransaction( em -> {   //  <-- error in this line
          val query = em.createQuery("from BankHib order by name")
          val list = query.getResultList.asScala.toList.map(_.asInstanceOf[BankHib])
          list
      })
   }
}

错误:

  

重载方法值withTransaction with alternatives:(x $ 1:   Runnable)Unit [T](x $ 1:java.util.function.Supplier [T])T   [T](X $ 1:   java.util.function.Function [javax.persistence.EntityManager,T])笔   无法应用于((javax.persistence.EntityManager,   列表[admin.manage.BankHib]))

此代码有什么问题?

1 个答案:

答案 0 :(得分:1)

Scala中的Lambda使用语法

em => ...

而不是

em -> ...

在Java中。

Scala中的

->用于地图。