// Category Mapper Service
@Service
public class CategoryMapperService {
public CategoryResponseDto toDataTransferObject(Category category) {
CategoryResponseDto categoryResponseDto = new CategoryResponseDto();
categoryResponseDto.setId(category.getId());
categoryResponseDto.setName(category.getName());
return categoryResponseDto;
}
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BookResponseDto {
private Long id;
private String cover;
private String title;
private String author;
private String description;
private String isbn;
private int copies;
private Set<CategoryResponseDto> categories;
}
@Entity
@NoArgsConstructor
@Data
@Table(name = "books")
public class Book implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String cover;
private String title;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "book_category", joinColumns = @JoinColumn(name = "book_id"), inverseJoinColumns = @JoinColumn(name = "category_id"))
@JsonManagedReference
private Set<Category> categories = new HashSet<>();
@JsonIgnore
@OneToMany(mappedBy = "book", cascade = CascadeType.ALL, orphanRemoval = true)
private List<BorrowRecord> borrowRecords = new ArrayList<>();
private String author;
private String description;
private String isbn;
private int copies;
}
@Entity
@NoArgsConstructor
@Data
@Table(name = "categories")
public class Category implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private String name;
@ManyToMany(mappedBy = "categories")
@JsonBackReference
private Set<Book> books = new HashSet<>();
}
在这里是完整的异常代码
java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013 undefined)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:967 undefined)
at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:335 undefined)
at org.hibernate.collection.spi.PersistentSet.injectLoadedState(PersistentSet.java:311 undefined)
at org.hibernate.sql.results.internal.LoadingCollectionEntryImpl.finishLoading(LoadingCollectionEntryImpl.java:78 undefined)
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishLoadingCollections(JdbcValuesSourceProcessingStateStandardImpl.java:171 undefined)
at org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl.finishUp(JdbcValuesSourceProcessingStateStandardImpl.java:142 undefined)
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:205 undefined)
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:35 undefined)
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:224 undefined)
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:102 undefined)
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.executeQuery(JdbcSelectExecutor.java:91 undefined)
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:165 undefined)
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:142 undefined)
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:132 undefined)
at org.hibernateer.ast.internal.CollectionLoaderSingleKey.load.load(CollectionLoaderSingleKey.java:120 undefined)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:748 undefined)
at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:69 undefined)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127 undefined)
at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1724 undefined)
at org.hibernate.collection.spi.AbstractPersistentCollection.lambda$initialize$3(AbstractPersistentCollection.java:616 undefined)
at org.hibernate.collection.spi.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:265 undefined)
at org.hibernate.collection.spi.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:614 undefined)
at org.hibernate.collection.spi.AbstractPersistentCollection.read(AbstractPersistentCollection.java:138 undefined)
at org.hibernate.collection.spi.PersistentSet.iterator(PersistentSet.java:166 undefined)
at java.base/java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.java:1865 undefined)
at java.base/java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:414 undefined)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:508 undefined)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499 undefined)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921 undefined)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234 undefined)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682 undefined)
at dev.library.backend.dto.mappers.BookMapperService.toDataTransferObject(BookMapperService.java:37 undefined)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197 undefined)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625 undefined)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509 undefined)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499 undefined)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575 undefined)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260 undefined)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616 undefined)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622 undefined)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627 undefined)
at dev.library.backend.controllers.BookController.getBooks(BookController.java:36 undefined)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77 undefined)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43 undefined)
at java.base/java.lang.reflect.Method.invoke(Method.java:568 undefined)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359 undefined)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196 undefined)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163 undefined)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380 undefined)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119 undefined)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184 undefined)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:727 undefined)
at dev.library.backend.controllers.BookController$SpringCGLIB$0.getBooks(<generated> undefined)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77 undefined)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43 undefined)
at java.base/java.lang.reflect.Method.invoke(Method.java:568 undefined)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257 undefined)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190 undefined)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118 undefined)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986 undefined)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891 undefined)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87 undefined)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088 undefined)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978 undefined)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014 undefined)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903 undefined)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564 undefined)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885 undefined)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108 undefined)
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128 undefined)
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126 undefined)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131 undefined)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at dev.library.backend.config.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:40 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107 undefined)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90 undefined)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82 undefined)
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224 undefined)
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137 undefined)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233 undefined)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191 undefined)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113 undefined)
at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:243 undefined)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113 undefined)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74 undefined)
at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:238 undefined)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362 undefined)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201 undefined)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116 undefined)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164 undefined)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140 undefined)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167 undefined)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90 undefined)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483 undefined)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115 undefined)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93 undefined)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74 undefined)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344 undefined)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397 undefined)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63 undefined)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905 undefined)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741 undefined)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52 undefined)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190 undefined)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659 undefined)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63 undefined)
at java.base/java.lang.Thread.run(Thread.java:842 undefined)
这个问题一直在阻止我的工作,因此最不感激任何帮助。由于您的
书籍实体的类别的懒惰加载而发生。您可以通过几种方式进行修复。使其渴望是最简单的解决方案。但是,您可以编写存储库方法,以示意以下类别:
ConcurrentModificationException
现在,您可以使用
@Repository
interface BookRepository extends JpaRepository<Book, Long>
{
@Query("Select b from Book b join fetch b.categories")
List<Book> findAllWithCategories();
}
而不是从存储库中使用
findAllWithCategories
n+1
查询问题
findAll