在 Play for Scala 中实现 JPA 查询

Implementing JPA query in Play for Scala

我正在尝试在 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
      })
   }
}

错误:

overloaded method value withTransaction with alternatives: (x: Runnable)Unit [T](x: java.util.function.Supplier[T])T [T](x: java.util.function.Function[javax.persistence.EntityManager,T])T cannot be applied to ((javax.persistence.EntityManager, List[admin.manage.BankHib]))

这段代码有什么问题?

Scala 中的 Lambda 使用语法

em => ...

而不是

em -> ...

在 Java.

-> 在 Scala 中用于映射。