首页 文章

在Play for Scala中实现JPA查询

提问于
浏览
0

在Java中记录these examples之后,我正在尝试在Play for Scala中实现JPA .

在以下代码中,我在 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])T不能应用于((javax.persistence.EntityManager,List [admin.manage.BankHib]))

这段代码出了什么问题?

1 回答

  • 1

    Scala中的Lambdas使用语法

    em => ...
    

    代替

    em -> ...
    

    在Java中 .

    Scala中的 -> 用于 Map .

相关问题