我试图在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]))
此代码有什么问题?
答案 0 :(得分:1)
Scala中的Lambda使用语法
em => ...
而不是
em -> ...
在Java中。
Scala中的 ->
用于地图。