Hibernate: select user0_.user_id as user_id1_8_, user0_.e_mail as e_mail2_8_, user0_.user_age as user_age3_8_, user0_.user_gender as user_gen4_8_, user0_.user_grade as user_gra5_8_, user0_.user_icon as user_ico6_8_, user0_.user_identity as user_ide7_8_, user0_.user_institute as user_ins8_8_, user0_.username as username9_8_ from user user0_ where user0_.user_id=?
Hibernate: delete from user where user_id=?
Hibernate: insert into user (user_id, user_icon, user_identity, username, user_age, user_gender, user_grade, user_institute, e_mail) values(?,?,?,?,?,?,?,?,?)
Hibernate: select userauthor0_.user_id as user_id1_9_, userauthor0_.user_identity as user_ide2_9_, userauthor0_.user_password as user_pas3_9_, userauthor0_.username as username4_9_ from user_authority userauthor0_ where userauthor0_.user_id=?
2021-06-02 13:06:44.129 ERROR 7156 — [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query] with root cause
javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:409) ~[hibernate-core-5.4.6.Final.jar:5.4.6.Final]
at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1601) ~[hibernate-core-5.4.6.Final.jar:5.4.6.Final]
at org.springframework.data.jpa.repository.query.JpaQueryExecution M o d i f y i n g E x e c u t i o n . d o E x e c u t e ( J p a Q u e r y E x e c u t i o n . j a v a : 238 ) [ s p r i n g − d a t a − j p a − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 . q u e r y . J p a Q u e r y E x e c u t i o n . e x e c u t e ( J p a Q u e r y E x e c u t i o n . j a v a : 88 ) [ s p r i n g − d a t a − j p a − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 . q u e r y . A b s t r a c t J p a Q u e r y . d o E x e c u t e ( A b s t r a c t J p a Q u e r y . j a v a : 154 ) [ s p r i n g − d a t a − j p a − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 . q u e r y . A b s t r a c t J p a Q u e r y . e x e c u t e ( A b s t r a c t J p a Q u e r y . j a v a : 142 ) [ s p r i n g − d a t a − j p a − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 . R e p o s i t o r y F a c t o r y S u p p o r t ModifyingExecution.doExecute(JpaQueryExecution.java:238) ~[spring-data-jpa-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88) ~[spring-data-jpa-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154) ~[spring-data-jpa-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142) ~[spring-data-jpa-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactorySupport ModifyingExecution.doExecute(JpaQueryExecution.java:238) [spring−data−jpa−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88) [spring−data−jpa−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154) [spring−data−jpa−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142) [spring−data−jpa−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.data.repository.core.support.RepositoryFactorySupportQueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:618) ~[spring-data-commons-2.2.0.RELEASE.jar:2.2.0.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport Q u e r y E x e c u 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 ( R e p o s i t o r y F a c t o r y S u p p o r t . j a v a : 605 ) [ s p r i n g − d a t a − c o m m o n s − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 : 186 ) [ s p r i n g − a o p − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] a t o r g . s p r i n g f r a m e w o r k . d a t a . p r o j e c t i o n . D e f a u l t M e t h o d I n v o k 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 ( D e f a u l t M e t h o d I n v o k i n g M e t h o d I n t e r c e p t o r . j a v a : 80 ) [ s p r i n g − d a t a − c o m m o n s − 2.2.0. R E L E A S E . j a r : 2.2.0. R E L E A S E ] 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 : 186 ) [ s p r i n g − a o p − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . i n t e r c e p t o r . T r a n s a c t i o n A s p e c t S u p p o r t . i n v o k e W i t h i n T r a n s a c t i o n ( T r a n s a c t i o n A s p e c t S u p p o r t . j a v a : 353 ) [ s p r i n g − t x − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . i n t e r c e p t o r . T r a n s a c t i o n I n t e r c e p t o r . i n v o k e ( T r a n s a c t i o n I n t e r c e p t o r . j a v a : 99 ) [ s p r i n g − t x − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] 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 : 186 ) [ s p r i n g − a o p − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] 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 : 139 ) [ s p r i n g − t x − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] 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 : 186 ) [ s p r i n g − a o p − 5.2.0. R E L E A S E . j a r : 5.2.0. R E L E A S E ] 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 QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605) ~[spring-data-commons-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80) ~[spring-data-commons-2.2.0.RELEASE.jar:2.2.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:353) ~[spring-tx-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99) ~[spring-tx-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.0.RELEASE.jar:5.2.0.RELEASE] at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605) [spring−data−commons−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring−aop−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80) [spring−data−commons−2.2.0.RELEASE.jar:2.2.0.RELEASE]atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring−aop−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:353) [spring−tx−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99) [spring−tx−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring−aop−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) [spring−tx−5.2.0.RELEASE.jar:5.2.0.RELEASE]atorg.sprin