代码之家  ›  专栏  ›  技术社区  ›  Yagami Light

如何获取发帖结果列表

  •  0
  • Yagami Light  · 技术社区  · 6 年前

    @RequestMapping(value = "/ecran", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody List<Champ> getEcranChamps (@RequestParam("idType") Long idTypeDemande) {          
        System.err.println("La taille de la liste recupérer est  " +  champService.recupereListChampByIdtypeDemande(idTypeDemande).size());
        return champService.recupereListChampByIdtypeDemande(idTypeDemande) ;       
    }
    

    List 当我试图像这样使用请求结果时:

    $
                                    .ajax({
                                        type : "POST",
                                        url : "/ecran",
                                        data : {
                                            idType : theme
                                        },
    
                                        success : function(result) {
                                            var html = "";
                                            for (var i = 0; i < result.length; i++) {
        ....
    

    我有以下错误

    com.fasterxml.jackson.databind.exc.InvalidDefinitionException:找不到类org.hibernate.proxy.pojo.javassist.javassitLazInitializer的序列化程序,也找不到创建BeanSerializer的属性(为了避免异常,请在\u空\u bean上禁用SerializationFeature.FAIL)(通过引用链:java.util.ArrayList[0]->com.kepler.portailclient.domain.model.Champ\ujvst4aa\u2a5[“handler”]) 在com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException。java:77)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider。java:1191)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext。java:312)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failforepty(UnknownSerializer。java:71)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter。java:727)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase。java:719)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer。java:155)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer。java:145)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer。java:107)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.\u serialize(DefaultSerializerProvider。java:480)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider。java:400)~[jackson-databind-2.9.6。jar:2.9.6] 在com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter。java:913)~[jackson-databind-2.9.6。jar:2.9.6] 位于org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter)。java:288)~[spring-web-5.0.8.发布。jar:5.0.8.RELEASE] 在org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter。java:102)~[spring-web-5.0.8.发布。jar:5.0.8.RELEASE] 位于org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.WriteWithMessageConverterMethodProcessor(AbstractMessageConverterMethodProcessor)。java:272)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 位于org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite)。java:82)~[spring-web-5.0.8.发布。jar:5.0.8.RELEASE] 位于org.springframework.web.servlet.mvc.method.annotation.servletinvaccablehandlermethod.invokeAndHandle(servletinvaccablehandlermethod)。java:119)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter。java:877)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter)。java:87)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet。java:991)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet。java:974)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 在org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet。java:877)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE] 在javax.servlet.http.HttpServlet.service(HttpServlet。java:661)~[tomcat-embed-core-8.5.32。jar:8.5.32] 位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet。java:851)~[spring-webmvc-5.0.8.发布。jar:5.0.8.RELEASE]

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ernesto Campohermoso    6 年前

    你的问题是JPA而不是REST。

    在JPA中,夫妻关系有两种行为:懒惰和渴望。

    您可以查看以下内容的详细说明: Difference between FetchType LAZY and EAGER in Java Persistence API?

    当Jackson调用get over onetomy关系时,JPA试图调用对数据库的查询,所以LazyExecption被抛出。无论如何,我不建议直接返回JPA实体,因为它将依赖于循环依赖,最好的方法是用您想要返回的信息创建DTO(javapojo)。所以你必须:

    1. 从数据库加载实体。
    2. 返回REST方法上的dto列表。