Dropwizard 2 Sundial Hibernate не имеет сеанса
Мы использовали Dropwizard в версии 1.3.13. Вместе с этим мы реализовали автоматизированные задачи с солнечными часами и солнечными часами dropwizard в версии 1.3.1.
Большинство наших вакансий требует доступа к базе данных. Поэтому мы реализовали метод doRun для солнечных часов и добавили аннотацию UnitOfWork. Это сработало очень хорошо.
Несколько дней назад мы решили перейти на dropwizard 2.0.2. Все работает, кроме рабочих мест. Задания все еще выполняются, но UnitOfWork больше не работает. Мы выполняем части логики базы данных с помощью DAO. Каждый DAO расширяется от AbstractDAO dropwizard-hibernate также в версии 2.0.2.
Но каждый раз, когда DAO пытаются получить доступ к базе данных, мы получаем исключение "Нет привязки к сеансу в настоящее время". Мы внедряем sessionFactory, который необходим AbstractDAO, через внедрение зависимостей, и это работает очень хорошо. Но мы не можем понять, как заставить DAO снова работать. Также мы используем последнюю версию kotlin. Вот код котельной плиты, как это работает в нашем сервисе:
@SimpleTrigger(repeatInterval = 1, timeUnit = TimeUnit.MINUTES)
open class DummyJob : SomeAbstractJobThatExtendsFromSundialJob() {
@Inject
lateinit var dao: SomeDAO
@UnitOfWork
override fun run() {
val entity = SomeEntity()
dao.save(entity)
}
}
class SomeDAO @Inject constructor(sessionFactory: SessionFactory): AbstractDAO<SomeEntity>(sessionFactory) {
fun save(contentModule: ContentModule) {
persist(contentModule)
}
}
во время сохранения или выбора таким же образом мы всегда получаем "сеанс в настоящее время не привязан". Событие, запускающее сеанс вручную с введенным sessionFactory, не работает.
Есть идеи?