Я следовал этому учебнику , но мой метод doInHibernate - неоднозначность, и мне нужна помощь, чтобы решить эту проблему.
Мой метод выглядит точно так же:
@Test
fun createValidUser_saveUser_userSaved() {
doInHibernate(({this.sessionFactory() }), {session: Session ->
val expectedUser = User(
"test.user@email.com",
"testPASSWORD",
"testFirstName",
"testLastName")
session.persist(expectedUser)
val actualUser: User = session.find(User::class.java, expectedUser.id)
assertThat(actualUser).isEqualTo(expectedUser)
})
}
My IDE (и компилятор также) говорит:
Неоднозначность разрешения перегрузки. Все эти функции совпадают.
- publi c final fun doInHibernate (factorySupplier: (() → SessionFactory!) !, функция: ((t: Session!) → (??? .. ???))!): (??? .. ???) определено в org.hibernate.testing.transaction.TransactionUtil
- publi c final fun doInHibernate (factorySupplier: (() → SessionFactory!) !, function: ((t: Session!) → Unit)!): Модуль, определенный в org.hibernate.testing.transaction.TransactionUtil
- publi c final fun doInHibernate (factorySupplier: ( () → SessionFactory!) !, функция: ((t: Session!) → Unit)!): Модуль, определенный в org.hibernate.testing.transaction.TransactionUtil
Я не очень знаком с анонимными классами (Java) и его заменами в Kotlin (lambdas, SAM), возможно, именно в этом проблема.
Я впервые использую метод doInHibernate, и трудно найти учебник для этого.
Я использую Springboot 2.2.4.RELEASE и Hibernate 5.4.12.Final.