Я не знаю, почему InalidDataAccessApiUsageException - PullRequest
0 голосов
/ 11 марта 2020

jpa

public interface EquipRentalLogRepository extends JpaRepository<EquipRentalLog, Long> {
    @Modifying
    @Query("Update EquipRentalLog p set p.realReturnTime = :realReturnTime "
            + "where p.memberId = :member "
            + "and p.equipId = :equipment "
            + "and p.realReturnTime = null")
    void updateReturnEquip(@Param("member") Member member, @Param("equipment") Equipment equipment, @Param("realReturnTime") LocalDateTime realReturnTime);

Служба

package com.services.webservice.service.MemberService.EquipService;

import java.util.List;
import java.util.stream.Collectors;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.services.webservice.domain.EState;
import com.services.webservice.domain.Equipment.EquipStateRepository;
import com.services.webservice.domain.Equipment.EquipmentRepository;
import com.services.webservice.domain.Member.MemberRepository;
import com.services.webservice.domain.RentalLog.EquipRentalLogRepository;
import com.services.webservice.service.dto.Equip.Request.ReqEquipRentalDto;
import com.services.webservice.service.dto.Equip.Request.ReqEquipReturnDto;
import com.services.webservice.service.dto.Equip.Response.ResEquipListDto;
import com.services.webservice.service.dto.Equip.Save.SaveEquipRentalDto;

import lombok.AllArgsConstructor;

public void equipReturn(ReqEquipReturnDto dto) throws NullPointerException{
        saveEquipReturnLogQuery(dto);
    }

    @Transactional
    private void saveEquipReturnLogQuery(ReqEquipReturnDto dto)throws NullPointerException {
        EquipRentalLog log = equipLogRepo.findbyMemberRentalSameEquip(dto.getStudentNum(), dto.getEquipNum()).get(0);

        System.out.println(log.getReason());

        equipLogRepo.updateReturnEquip(memberRepo.findByStudentNum(dto.getStudentNum()), 
                        equipRepo.findByEquipNum(dto.getEquipNum()), 
                        dto.getRealReturnTime());

        equipRepo.updatebyRentalEquip(dto.getEquipNum(), equipStateRepo.findByState(EState.ACTIVATE.getValue()));
    }

Ошибка описания

org.springframework.dao.InvalidDataAccessApiUsageException: выполнение запроса на обновление / удаление; Вложенным исключением является javax.persistence.TransactionRequiredException: выполнение запроса на обновление / удаление в org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible (EntityManagerFactoryUtils. java: (HibernateJpaDialect. java: 257) в org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible (AbstractEntityManagerFactoryBean. java: 528) в точке org.springframe ) в org.springframework. framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation. java: 186) в org.sp ringframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor $ CrudMethodMetadataPopulatingMethodInterceptor.invoke (CrudMethodMetadataPostProcessor java:. 149) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (. ReflectiveMethodInvocation java: 186) в org.springframework. aop.interceptor.ExposeInvocationInterceptor.invoke (ExposeInvocationInterceptor. java: 95) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation. JdkDynamicAopProxy. java: 212) в com.sun.proxy. $ Proxy164.updateReturnEquip (неизвестный источник) в java .base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java .base jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) в java .base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke * DelegatingMethodAccessor 10) .Accessor java .lang.reflect.Meth od.invoke (Method. java: 567) в org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection (AopUtils. java: 344) в org.springframework.aop.framework.JdkDynamicAopAj. Proxy. *: 205) на com.sun.proxy. $ Proxy103.updateReturnEquip (Неизвестный источник) на com.services.webservice.service.MemberService.EquipService.EquipService.saveEquipReturnLogQuery (EquipService. java: 72.web) на com.serser. .service.MemberService.EquipService.EquipService.equipReturn (EquipService. java: 63) по адресу com.services.webservice.domain.EquipServiceTest.equipReturnTest (EquipServiceTest. java: 85) в * 10. .reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) по адресу java .base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) по java. invoke (DelegatingMethodAccessorImpl. java: 43) в java .base / java .lang.reflect.Method.invoke (Method. java: 567) в org.junit.platform.c ommons.util.ReflectionUtils.invokeMethod (ReflectionUtils. java: 686) в org.junit.jupiter.engine.execution.ExecutableInvoker.invoke (ExecutableInvoker. java: 115) в org.junit.jupiter.engine.descriptor. TestMethodTestDescriptor.lambda $ invokeTestMethod $ 6 (TestMethodTestDescriptor. java: 170) в org.junit.jupiter.engine.execution.ThrowableCollector.execute (ThrowableCollector. java: текстовый репозиторий.орг. Org.jpg). .invokeTestMethod (TestMethodTestDescriptor. java: 166) в org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute (TestMethodTestDescriptor. java: 113) в org.junit.jiter. TestMethodTestDescriptor.execute (TestMethodTestDescriptor. java: 58) в org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 5 (NodeTestTask. javaj. .hierarchical.ThrowableCollector.execute (ThrowableCollector. java: 73) в org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 7 (NodeTestTask. java: 125). org. engine.support.hierarchical.Node.around (Node. java: 135) в org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 8 (NodeTestTask. java: 123) в org.junit. .platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector. java: 73) в org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively (NodeTestTasj. 122) в 1056 или * 1056 .platform.engine.support.hierarchical.NodeTestTask.execute (NodeTestTask. java: 80) в java .base / java .util.ArrayList.forEach (ArrayList. java: 1540) в org.junit. .platfor m.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll (SameThreadHierarchicalTestExecutorService. java: 38) в org.junit.platform.engine.support.hierarchical.NodeTestTask.klurg_eg_5 .junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector. java: 73) по адресу org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 7 (125 узлов) ) в org.junit.platform.engine.support.hierarchical.Node.around (Узел. java: 135) в org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 8 (NodeTestTask. 10) *: 123) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector. java: 73) в org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively. *: 122) в org.junit.platform.engine.support.hierarchical.NodeTestTask.execute (NodeTestTask. java: 80) в java .base / java. util.ArrayList.forEach (ArrayList. java: 1540) в org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll (SameThreadHierarchicalTestExecutorService. java: 38.en.su.g.su.g.su.g.su.g.su.g.su.g.su.g.su.g.su.g. org.su.su.g.su.g). org. at. ierarchical.NodeTestTask.lambda $ executeRecursively $ 5 (NodeTestTask. java: 139) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector. java: 73) в org.jpg .support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 7 (NodeTestTask. java: 125) в org.junit.platform.engine.support.hierarchical.Node.around (Node. java: 135) в org.junit. platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 8 (NodeTestTask. java: 123) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector: 73 или 79) на 10 *. .junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively (. NodeTestTask java 122) в org.junit.platform.engine.support.hierarchical.N odeTestTask.execute (NodeTestTask. java: 80) по адресу org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit (SameThreadHierarchicalTestExecutorService. java:. HierarchicalTestExecutor.execute (HierarchicalTestExecutor. java: 57) по адресу org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute (HierarchicalTestEngine. java: 51) по адресу org.junitefher.c. execute (DefaultLauncher. java: 229) в org.junit.platform.launcher.core.DefaultLauncher.lambda $ execute $ 6 (DefaultLauncher. java: 197) в org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams (DefaultLauncher. java: 211) в org.junit.platform.launcher.core.DefaultLauncher.execute (DefaultLauncher. java: 191) в org.junit.platform.launcher.core. DefaultLauncher.execute (DefaultLauncher. java: 137) в org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run (JUnit5TestReference. java: 89) в org.eclipse.jdt.inrun.junit. TestExecution.run (TestExecution. java: 41) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner. java: 541) в org.eclipse.jdt.internal.junit.un RemoteTestRunner.runTests (RemoteTestRunner. java: 763) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner. java: 463) в org.eclipse.jdt.run.j. RemoteTestRunner. .query.internal.AbstractProducedQuery.executeUpdate (Аннотация pl.invoke0 (собственный метод) в java .base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) в java .base / jdk.internal.reflect.DelegatingMethoor . java: 43) at java .base / java .lang.reflect.Method.invoke (Method. java: 567) в org.springframework.orm.jpa.SharedEntityManagerCreator $ DeferredQueryInvocationHandler.inityManagerCinderCanager (InvokeManager) ( . java: 409) в com.sun.proxy. $ Proxy175.executeUpdate (неизвестный источник) в org.springframework.data.jpa.repository.query.JpaQueryExecution $ ModifyingExecution.doExecute (JpaQueryExecution. java: 238) org.springframework.data.jpa.repository.query.JpaQueryExecution.execute (JpaQueryExecution. java: 88) в org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute (AbstractJpa9uery 15). org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute (AbstractJpaQuery. java: 142) в org.springframework.data.repository.core.support.QueryExe cutorMethodInterceptor. support.QueryExecutorMethodInterceptor.invoke (QueryExecutorMethodInterceptor java:. 130) при org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation java:. 186) при org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke (DefaultMethodInvokingMethodInterceptor. java: 80) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation. java: 186) в org.springframework.transaction.interceptor.TransactionAspectSupport.inactionSupport. .springframework.transaction.interceptor.TransactionInterceptor.invoke (TransactionInterceptor. java: 99) в org.springframework.aop.framework.Re flectiveMethodInvocation.proceed (ReflectiveMethodInvocation. java: 186) в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor. java: 139) ... 70 больше * 1009

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...