Реализация запроса JPA в Play для Scala

Я пытаюсь реализовать JPA в Play для Scala, следуя этим примерам, документированным в Java.

В следующем коде я получаю ошибку компиляции в 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 с альтернативами: (x$1: Runnable) Единица [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 ответ

Решение

Лямбды в Scala используют синтаксис

em => ...

вместо

em -> ...

на Яве.

-> в Scala есть для карт.

Другие вопросы по тегам