2
我寫了一個被通過的倒閉和一個事務中執行它一點交易幫手:隱含參數不傳遞給封
object Transaction {
val emf = Persistence.createEntityManagerFactory("defaultPersistenceUnit")
def execute(action: EntityManager => Unit) {
val em = emf.createEntityManager()
em.getTransaction.begin()
action(em)
em.getTransaction.commit()
em.close()
}
}
然後,我有一個ItemRepository
這樣的:
object ItemRepository {
def add(implicit entityManager: EntityManager, item: Item) {
entityManager.persist(item)
}
}
最後我想執行隱式傳遞的EntityManager的存儲庫方法:
Transaction.execute(implicit em => ItemRepository.add(item))
但是,編譯器告訴我:
沒有足夠的論據方法添加:(隱含的EntityManager: javax.persistence.EntityManager,隱含項:models.Item)單位。 未指定的值參數項目。
一切正常,如果我通過了參數顯式:
Transaction.execute(em => ItemRepository.add(em, item))
有什麼不對嗎?它看起來幾乎和這個answer一樣。