2016-02-01 7 views
3

У меня есть старый проект, который использовал Spring 3.0.x и использовал реализацию JpaTemplate, предоставленную Spring.Весна 4 рекомендуется заменить JpaTemplate

Однако после обновления до 4.0.x пружинного я узнал, что JpaTemplate был нежелателен весна 3.2

Я видел предложения просто реорганизовать из использования JpaTemplate с EntityManager.

Однако замена JpaTemplate с EntityManager не достаточно, как я обнаружил, что этот проект был обертыванием JpaTemplate вызовов в JpaCallback, которые, в свою очередь, используются EntityManager. Я предполагаю, что причиной были обратные вызовы, чтобы позволить этим вызовам DAO запускаться асинхронно.

Есть ли предлагаемые рекомендации по рефакторингу приложений, которые используют JpaTemplate и класс JpaCallback при обновлении до Spring 4?

+0

Связанный: http://stackoverflow.com/questions/31925138/how-to-migrate-usage-of-jpatemplate-from-spring-3-2-to-4-1-4 –

+1

Если это ' JpaCallback' довольно легко заменить это менеджером сущностей, просто переместите код упаковки. 'JpaCallback' не обертывает шаблон, это наоборот. Одна вещь, которую вы теперь можете найти, это то, что у вас есть проблема с транзакциями, и это в основном является признаком неправильной настройки транзакций в первую очередь. –

ответ

2

В дополнение к замене JPATemplate, следует включить конфигурацию аннотаций с помощью <context:annotation-config /> или настроить PersistenceAnnotationBeanPostProcessor, чтобы включить инъекцию EntityManager в DAO,. Если у вас есть <context:component-scan />, вы должны быть в порядке, чтобы использовать все функции, как это было до миграции.

Смежные вопросы