Никакая активная транзакция после перехода с Java 8 на 11, Spring 4.3.30 на 5.1.20 и Hibernate 5.2.13 на 5.4.33JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Никакая активная транзакция после перехода с Java 8 на 11, Spring 4.3.30 на 5.1.20 и Hibernate 5.2.13 на 5.4.33

Сообщение Anonymous »

Я недавно перенес веб-приложение на основе Java и столкнулся с проблемами транзакций после следующих обновлений:
  • Java: с 8 на 11
  • Весна: с 4.3.30.RELEASE до 5.1.20.RELEASE
  • Спящий режим: с 5.2.13.Final до 5.4.33.Final
После миграции некоторые методы службы, помеченные @Transactional, больше не запускают транзакции, что приводит к следующей ошибке:

Код: Выделить всё

org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress;  nested exception is javax.persistence.TransactionRequiredException:  n o   t r a n s a c t i o n   i s   i n   p r o g r e s s < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . o r m . j p a . E n t i t y M a n a g e r F a c t o r y U t i l s . c o n v e r t J p a A c c e s s E x c e p t i o n I f P o s s i b l e ( E n t i t y M a n a g e r F a c t o r y U t i l s . j a v a : 4 0 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . o r m . j p a . v e n d o r . H i b e r n a t e J p a D i a l e c t . t r a n s l a t e E x c e p t i o n I f P o s s i b l e ( H i b e r n a t e J p a D i a l e c t . j a v a : 2 5 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . o r m . j p a . A b s t r a c t E n t i t y M a n a g e r F a c t o r y B e a n . t r a n s l a t e E x c e p t i o n I f P o s s i b l e ( A b s t r a c t E n t i t y M a n a g e r F a c t o r y B e a n . j a v a : 5 3 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a o . s u p p o r t . C h a i n e d P e r s i s t e n c e E x c e p t i o n T r a n s l a t o r . t r a n s l a t e E x c e p t i o n I f P o s s i b l e ( C h a i n e d P e r s i s t e n c e E x c e p t i o n T r a n s l a t o r . j a v a : 6 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a o . s u p p o r t . D a t a A c c e s s U t i l s . t r a n s l a t e I f N e c e s s a r y ( D a t a A c c e s s U t i l s . j a v a : 2 4 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a o . s u p p o r t . P e r s i s t e n c e E x c e p t i o n T r a n s l a t i o n I n t e r c e p t o r . i n v o k e ( P e r s i s t e n c e E x c e p t i o n T r a n s l a t i o n I n t e r c e p t o r . j a v a : 1 5 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a t a . j p a . r e p o s i t o r y . s u p p o r t . C r u d M e t h o d M e t a d a t a P o s t P r o c e s s o r $ C r u d M e t h o d M e t a d a t a P o p u l a t i n g M e t h o d I n t e r c e p t o r . i n v o k e ( C r u d M e t h o d M e t a d a t a P o s t P r o c e s s o r . j a v a : 1 4 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a t a . j p a . r e p o s i t o r y . s u p p o r t . C r u d M e t h o d M e t a d a t a P o s t P r o c e s s o r $ E x p o s e R e p o s i t o r y I n v o c a t i o n I n t e r c e p t o r . i n v o k e ( C r u d M e t h o d M e t a d a t a P o s t P r o c e s s o r . j a v a : 3 6 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . i n t e r c e p t o r . E x p o s e I n v o c a t i o n I n t e r c e p t o r . i n v o k e ( E x p o s e I n v o c a t i o n I n t e r c e p t o r . j a v a : 9 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . d a t a . r e p o s i t o r y . c o r e . s u p p o r t . S u r r o u n d i n g T r a n s a c t i o n D e t e c t o r M e t h o d I n t e r c e p t o r . i n v o k e ( S u r r o u n d i n g T r a n s a c t i o n D e t e c t o r M e t h o d I n t e r c e p t o r . j a v a : 6 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . J d k D y n a m i c A o p P r o x y . i n v o k e ( J d k D y n a m i c A o p P r o x y . j a v a : 2 1 2 ) < b r   / >         a t   c o m . s u n . p r o x y . $ P r o x y 2 0 2 . f i n d O n e F o r U p d a t e ( U n k n o w n   S o u r c e ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . c o m m o n . s e r v i c e . i m p l . T i c k e t S e r v i c e I m p l V 2 . g e t T i c k e t A n d L o c k ( T i c k e t S e r v i c e I m p l V 2 . j a v a : 1 5 4 3 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . c o m m o n . s e r v i c e . i m p l . T i c k e t S e r v i c e I m p l V 2 . g e t R e a d a b l e T i c k e t A n d L o c k ( T i c k e t S e r v i c e I m p l V 2 . j a v a : 1 5 4 8 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . c o m m o n . s e r v i c e . i m p l . T i c k e t S e r v i c e I m p l V 2 . c h e c k L o c k A n d G e t E d i t a b l e T i c k e t ( T i c k e t S e r v i c e I m p l V 2 . j a v a : 1 5 2 6 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . c o m m o n . s e r v i c e . i m p l . T i c k e t S e r v i c e I m p l V 2 . c r e a t e T i c k e t U p d a t e ( T i c k e t S e r v i c e I m p l V 2 . j a v a : 3 9 5 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . c o m m o n . s e r v i c e . i m p l . T i c k e t S e r v i c e I m p l V 2 . c r e a t e T i c k e t U p d a t e F r o m W e b ( T i c k e t S e r v i c e I m p l V 2 . j a v a : 1 8 0 8 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . s e r v l e t . c o n t r o l l e r . T i c k e t s C o n t r o l l e r V 2 . c r e a t e T i c k e t U p d a t e ( T i c k e t s C o n t r o l l e r V 2 . j a v a : 2 1 9 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . s e r v l e t . c o n t r o l l e r . T i c k e t s C o n t r o l l e r V 2 $ $ F a s t C l a s s B y S p r i n g C G L I B $ $ 7 4 a 5 b a 7 9 . i n v o k e ( & l t ; g e n e r a t e d & g t ; ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . c g l i b . p r o x y . M e t h o d P r o x y . i n v o k e ( M e t h o d P r o x y . j a v a : 2 1 8 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . i n v o k e J o i n p o i n t ( C g l i b A o p P r o x y . j a v a : 7 5 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 6 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . a c c e s s . i n t e r c e p t . a o p a l l i a n c e . M e t h o d S e c u r i t y I n t e r c e p t o r . i n v o k e ( M e t h o d S e c u r i t y I n t e r c e p t o r . j a v a : 6 9 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ D y n a m i c A d v i s e d I n t e r c e p t o r . i n t e r c e p t ( C g l i b A o p P r o x y . j a v a : 6 9 1 ) < b r   / >         a t   c o m . q u i c k t e c h . q u i c k t e c h . s e r v l e t . c o n t r o l l e r . T i c k e t s C o n t r o l l e r V 2 $ $ E n h a n c e r B y S p r i n g C G L I B $ $ 3 9 6 2 e 1 5 b . c r e a t e T i c k e t U p d a t e ( & l t ; g e n e r a t e d & g t ; ) < b r   / >         a t   j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e 0 ( N a t i v e   M e t h o d ) < b r   / >         a t   j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e ( N a t i v e M e t h o d A c c e s s o r I m p l . j a v a : 6 2 ) < b r   / >         a t   j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) < b r   / >         a t   j a v a . b a s e / j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 5 6 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . d o I n v o k e ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 9 0 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . i n v o k e F o r R e q u e s t ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 3 8 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . i n v o k e A n d H a n d l e ( S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 0 5 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . i n v o k e H a n d l e r M e t h o d ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 8 9 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . h a n d l e I n t e r n a l ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 7 9 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . A b s t r a c t H a n d l e r M e t h o d A d a p t e r . h a n d l e ( A b s t r a c t H a n d l e r M e t h o d A d a p t e r . j a v a : 8 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t . d o D i s p a t c h ( D i s p a t c h e r S e r v l e t . j a v a : 1 0 4 0 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t . d o S e r v i c e ( D i s p a t c h e r S e r v l e t . j a v a : 9 4 3 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . p r o c e s s R e q u e s t ( F r a m e w o r k S e r v l e t . j a v a : 1 0 0 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . d o P o s t ( F r a m e w o r k S e r v l e t . j a v a : 9 0 9 ) < b r   / >         a t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t . s e r v i c e ( H t t p S e r v l e t . j a v a : 6 8 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . s e r v i c e ( F r a m e w o r k S e r v l e t . j a v a : 8 8 3 ) < b r   / >         a t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t . s e r v i c e ( H t t p S e r v l e t . j a v a : 7 6 4 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 2 2 7 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 6 2 ) < b r   / >         a t   o r g . a p a c h e . t o m c a t . w e b s o c k e t . s e r v e r . W s F i l t e r . d o F i l t e r ( W s F i l t e r . j a v a : 5 3 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 9 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 6 2 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 2 0 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . i n v o k e ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 1 2 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . d o F i l t e r ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 9 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 1 9 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . s e curity.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.quicktech.quicktech.common.filter.LogRequestFilter.doFilterInternal(LogRequestFilter.java:35)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by:  javax.persistence.TransactionRequiredException: no transaction is in progress
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1631)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1604)
at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1652)
at jdk.internal.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:404)
at com.sun.proxy.$Proxy261.getSingleResult(Unknown Source)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:221)
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:91)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:136)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:125)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:605)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
... 99 more
Вот пример метода службы, которому не удается инициировать транзакцию:
Java

Код: Выделить всё

@Service
public class TicketServiceImpl {

public TicketServiceImplV2() {
System.out.println("TicketServiceImplV2 instantiated: " + this);
}

@Autowired
private TicketUpdatePersistence ticketPersistence;

@Transactional
public void createTicketUpdate(TicketUpdate update) {
Ticket ticket = ticketPersistence.findById(update.getTicket().getId())
.orElseThrow(() -> new EntityNotFoundException("Ticket not found"));

System.out.println("Transaction active: " + TransactionSynchronizationManager.isActualTransactionActive());

Ticket lockedTicket = ticketPersistence.findOneForUpdate(ticket.getId())
.orElseThrow(() -> new BadRequestException("No ticket found for update"));
}
}
Проблема:

Код: Выделить всё

TransactionSynchronizationManager.isActualTransactionActive()
возвращает false, и при попытке обновить билет в базе данных выдается исключение TransactionRequiredException. В некоторых других службах у меня есть TransactionSynchronizationManager.isActualTransactionActive() как true
Что я пробовал:
Конфигурация транзакции: есть только один журнал «TicketServiceImplV2 создан», поэтому это говорит о том, что экземпляр вашей службы создается только в одном контексте (вероятно, в основном контексте), а не в обоих контекстах.
Я проверил, что менеджер транзакций настроен правильно:
XML Публичный метод: метод является общедоступным, и к нему корректно применяется @Transactional.
Нет самостоятельных действий. вызов: я гарантировал отсутствие самовызова метода @Transactional, поскольку он вызывается извне.
Механизм блокировки: уровень сохраняемости использует пессимистическую блокировку метод findOneForUpdate:
Java

Код: Выделить всё

@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("SELECT t FROM Ticket t WHERE t.id = :id")
Ticket findOneForUpdate(@Param("id") String ticketId);
Мой файл конфигурации db.xml

Код: Выделить всё









































com.quicktech.quicktech.common.model













Моя общая конфигурация XML Spring quicktech-servlet.xml web.xml

Код: Выделить всё




contextConfigLocation
classpath:spring/spring-*.xml


[*]
org.springframework.web.context.ContextLoaderListener


org.springframework.web.context.request.RequestContextListener



springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
true



custom-filter
com.quicktech.quicktech.common.filter.LogRequestFilter




custom-filter
/v2/tickets/*
/company/*
/users/*
/products/*
/taxes/*
/serviceAgreements/*
/saleQuotes/*
/services/*




org.springframework.security.web.session.HttpSessionEventPublisher



springSecurityFilterChain
/*



cors
com.quicktech.quicktech.common.config.CorsFilter
  


cors
/passwordRecords/*
/google/code/otp/*



mvc

org.springframework.web.servlet.DispatcherServlet


contextConfigLocation
classpath:/servlet/quicktech-servlet.xml



throwExceptionIfNoHandlerFound
true

true
1
true



mvc
/



/index.html



404
/WEB-INF/jsp/404.jsp



400
/WEB-INF/jsp/400.jsp



360
COOKIE




*.jsp
UTF-8




Расположение класса конфигурации
Изображение

Мои вопросы:
  • Что может быть причиной неактивации транзакций после перехода с Spring 4.3 на 5.1 и Hibernate 5.2 на 5.4? ?
  • Есть ли какие-либо известные изменения в Spring 5 или Hibernate 5.4, которые могут повлиять на поведение управления транзакциями?
  • Может ли эта проблема быть связана с миграцией с Java 8 на Java 11, и если да, то как это решить?
Дополнительная информация:
  • База данных: PostgreSQL 12
  • Весенняя версия: 5.1.20.RELEASE
  • Версия Hibernate: 5.4.33.Final< /li>
    Версия Java: 11.0.24
  • Сервер приложений: Apache Tomcat 9.0.55


Подробнее здесь: https://stackoverflow.com/questions/790 ... -to-5-1-20
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»