在数据访问层中写了一个查询语句,发现调用的时候报错,原代码如下。
/**
* 检查用户ID是否存在
* @param userId
* @return
*/
@Modifying
@Query(value = "select account from pub_user WHERE user_id = ?1 AND del_flag = 0",nativeQuery = true)
String checkManagerByUserId(Long userId);
错误信息
2018-12-18 15:02:40,354 +0800 | INFO | org.apache.juli.logging.DirectJDKLog - Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-12-18 15:02:40,354 +0800 | INFO | org.springframework.web.servlet.FrameworkServlet - FrameworkServlet 'dispatcherServlet': initialization started
2018-12-18 15:02:40,383 +0800 | INFO | org.springframework.web.servlet.FrameworkServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 29 ms
2018-12-18 15:02:40,557 +0800 | ERROR | com.comtop.mop.exception.GlobalExceptionHandler - Modifying queries can only use void or int/Integer as return type!
java.lang.IllegalArgumentException: Modifying queries can only use void or int/Integer as return type!
at org.springframework.util.Assert.isTrue(Assert.java:92)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$ModifyingExecution.<init>(JpaQueryExecution.java:232)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.getExecution(AbstractJpaQuery.java:137)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:106)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:499)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:477)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.dao.s