Реализация запроса 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 есть для карт.