Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @事务上下文未传递到“可选”映射中?_Java_Spring_Hibernate_Transactions_Jhipster - Fatal编程技术网

Java @事务上下文未传递到“可选”映射中?

Java @事务上下文未传递到“可选”映射中?,java,spring,hibernate,transactions,jhipster,Java,Spring,Hibernate,Transactions,Jhipster,给定此实体类别: @实体 @表(name=“jhi\U用户”) @缓存(用法=缓存并发策略。非严格读写) 公共类用户扩展AbstractAuditionEntity实现可序列化{ [...] @OneToMany(mappedBy=“用户”) @缓存(用法=CacheConcurrencyStrategy.READ\u WRITE) @JsonIgnoreProperties(value=“user”,allowSetters=true) 私有集邀请=新HashSet(); [...] } 我

给定此实体类别:

@实体
@表(name=“jhi\U用户”)
@缓存(用法=缓存并发策略。非严格读写)
公共类用户扩展AbstractAuditionEntity实现可序列化{
[...]
@OneToMany(mappedBy=“用户”)
@缓存(用法=CacheConcurrencyStrategy.READ\u WRITE)
@JsonIgnoreProperties(value=“user”,allowSetters=true)
私有集邀请=新HashSet();
[...]
}
我正在尝试在控制器中获取当前帐户:

@GetMapping(“/account”)
@事务(只读=真)
公共用户数据到getAccount(){
返回用户服务
.getUserWithAuthories()
.map(UserDTO::new)
.orelsetrow(()->new AccountResourceException(“找不到用户”);
}
其中,上述邀请应映射到
public UserDTO()

[…]
this.rolesPerProject=user.getinvestments().stream()
.collect(Collectors.toMap(邀请->邀请.getProject().getId(),
邀请->邀请.getRole().getName());
[...]
事务上下文对于
userService#getUserWithAuthorities
工作正常,但似乎没有传递到
Optional#map
流中?出现以下错误:

org.hibernate.LazyInitializationException:未能延迟初始化角色集合:io.github.bbortt.event.planner.domain.User.investments,无法初始化代理-在[…]没有会话
顺便说一句,是吉普斯特。我有点卡住了。我如何实现这种行为

--

编辑1

完整堆栈跟踪:

org.hibernate.LazyInitializationException:未能延迟初始化角色集合:io.github.bbortt.event.planner.domain.User.investments,无法初始化代理-无会话
位于org.hibernate.collection.internal.AbstractPersistentCollection.ThrowlazyiInitializationException(AbstractPersistentCollection.java:606)
位于org.hibernate.collection.internal.AbstractPersistentCollection.WithTemporarySessionIneed(AbstractPersistentCollection.java:218)
位于org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:585)
位于org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149)
位于org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:188)
位于java.base/java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.java:1821)
位于java.base/java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:408)
位于java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
位于java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
位于java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
位于java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
位于java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
位于io.github.bbortt.event.planner.service.dto.UserDTO.(UserDTO.java:80)
位于java.base/java.util.Optional.map(Optional.java:258)
在io.github.bbortt.event.planner.web.rest.AccountResource.getAccount(AccountResource.java:112)上
位于io.github.bbortt.event.planner.web.rest.AccountResource$$FastClassBySpringCGLIB$$43f6c853.invoke()
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:163)上
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.procedue(CglibAopProxy.java:749)
在org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.procedure(MethodInvocationProceedingJoinPoint.java:88)上
位于io.github.bbortt.event.planner.aop.logging.LoggingAspect.logAround(LoggingAspect.java:104)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:567)
位于org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
位于org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
位于org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.procedue(CglibAopProxy.java:749)
位于org.springframework.aop.aspectj.aspectjafthrowingadvice.invoke(aspectjafthrowingadvice.java:62)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.procedue(CglibAopProxy.java:749)
位于org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:366)
位于org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.procedue(CglibAopProxy.java:749)
位于org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
位于org.springframework.aop.framework.ReflectiveMethodInvocati