У меня была та же проблема, и я аннотировал метод, так как @Transactional
он работал.
UPDATE: проверяя весеннюю документацию, похоже, по умолчанию PersistenceContext имеет тип Transaction, поэтому метод должен быть транзакционным ( http://docs.spring.io/spring/docs/current/spring-framework-reference/ html / orm.html ):
Аннотация @PersistenceContext имеет необязательный тип атрибута, который по умолчанию имеет значение PersistenceContextType.TRANSACTION. Это значение по умолчанию - это то, что вам нужно для получения общего прокси-сервера EntityManager. Альтернатива PersistenceContextType.EXTENDED - это совершенно другое дело: это приводит к так называемому расширенному EntityManager, который не является потокобезопасным и, следовательно, не должен использоваться в компоненте, доступном одновременно, например, управляемом Spring одноэлементным компонентом. Расширенные EntityManager должны использоваться только в компонентах с состоянием, которые, например, находятся в сеансе, причем жизненный цикл EntityManager не привязан к текущей транзакции, а скорее полностью зависит от приложения.