Grails sessionFactory эквивалентно Domain.withNewSession и withTransaction - PullRequest
0 голосов
/ 01 февраля 2019

Я хотел бы иметь возможность использовать withNewSession и withTransaction без необходимости ссылаться на произвольный класс домена.

Где в исходном коде grails он метапрограммирует методы withNewSession и withTransaction?Я хотел бы скопировать реализацию в универсальный класс.

Моя слепая догадка заключалась бы в реализации с использованием sessionFactory // класса кода psuedo SessionManager {public withNewSession (Closure cl) {cl.call (sessionFactory.openSession ())}}

Менее уверен в том, как я буду реализовывать с помощью Transaction (я запустил поиск в репозитории github, но не увидел ничего подходящего)

1 Ответ

0 голосов
/ 02 февраля 2019

Где в исходном коде grails он метапрограммирует методы withNewSession и withTransaction?

Это зависит от того, какая версия GORM и какая реализация GORM.Взгляните на следующее:

withNewSession:

https://github.com/grails/gorm-hibernate5/blob/5a043739e5f7d4853535dfe8662483194d0c6c73/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/AbstractHibernateGormStaticApi.groovy#L80

withSession:

https://github.com/grails/gorm-hibernate5/blob/5a043739e5f7d4853535dfe8662483194d0c6c73/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/AbstractHibernateGormStaticApi.groovy#L86

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...