Menu

Mostrar vista modo lista con datos de una colección incrustada

2017-11-28
2017-11-30
  • Eduardo Dario Candia Giménez

    Buenos días necesito ayuda con esto por favor.

    Tengo las siguientes clases

    public class Inscripcion {
    ..
    @ElementCollection
    @ListProperties("persona.cedula, persona.apellidos, persona.nombres, obs")
    private Collection<InscripcionDetalle> detalle;
    }

    @Embeddable
    public class InscripcionDetalle {
    ..
    @ManyToOne(fetch = FetchType.LAZY, optional = true)
    private Persona persona;
    }

    Lo que necesito es mostrar una vista de solo lista, en la que pueda listar todas las personas que estan en la coleccion detalle de la clase Inscripcion.

    Para lograr esto he intentado lo siguiente:

    1- He creado una entrada para el modulo de solo lista en aplicacion.xml

     <modulo nombre="ListadoDeAlumnos">
            <var-entorno nombre="XAVA_LIST_ACTION" valor=""/>
            <modelo nombre="InscripcionDetalle"/>
            <controlador nombre="Print"/>
            <tab nombre="listaDeAlumnos"/>
            <controlador nombre="ListOnly"/>
            <controlador-modo nombre="Void"/>
        </modulo>
    

    2- luego en la clase InscripcionDetalle agrego el tab

       @Tab(name ="listaDeAlumnos",
    properties="persona.cedula, persona.nombres, persona.apellidos ")
    

    Lo que al ejecutar me da la siguiente traza

    java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: InscripcionDetalle is not mapped [SELECT e_persona.cedula, e_persona.nombres, e_persona.apellidos from InscripcionDetalle e left join e.persona e_persona]
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:331)
    at org.openxava.jpa.impl.EntityManagerDecorator.createQuery(EntityManagerDecorator.java:124)
    at org.openxava.tab.impl.JPATabProvider.nextBlock(JPATabProvider.java:153)
    at org.openxava.tab.impl.JPATabProvider.nextChunk(JPATabProvider.java:139)
    at org.openxava.tab.impl.EntityTabDataProvider.nextChunk(EntityTabDataProvider.java:34)
    at org.openxava.tab.impl.EntityTab.nextChunk(EntityTab.java:249)
    at org.openxava.tab.impl.TableModelBean.getRow(TableModelBean.java:121)
    at org.openxava.tab.impl.TableModelBean.getValueAt(TableModelBean.java:171)
    at org.openxava.tab.impl.XTableModelDecoratorBase.getValueAt(XTableModelDecoratorBase.java:62)
    at org.openxava.tab.impl.HiddenXTableModel.getValueAt(HiddenXTableModel.java:69)
    at org.openxava.tab.Tab.createTableModel(Tab.java:413)
    at org.openxava.tab.Tab.getTableModel(Tab.java:385)
    at org.apache.jsp.xava.editors.listEditor_jsp._jspService(listEditor_jsp.java:1035)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:82)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:301)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
    at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:120)
    at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:99)
    at org.openxava.web.dwr.Module.getURIAsString(Module.java:208)
    at org.openxava.web.dwr.Module.fillResult(Module.java:230)
    at org.openxava.web.dwr.Module.request(Module.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Me podrian indicar como podria lograr este resultado o algo similar?

    mostrar una vista de solo lista, en la que pueda listar todas las personas que estan en la coleccion detalle de la clase Inscripcion.

     

    Last edit: Eduardo Dario Candia Giménez 2017-11-28
  • Jeromy Altuna

    Jeromy Altuna - 2017-11-30

    Hola Eduardo.

    No puedes declarar un @Embeddable ("InscripcionDetalle") como modelo en la definición de tu módulo ListadoDeAlumnos. Así también, "InscripcionDetalle" no es una entidad, por lo tanto, no puedes declarle un //@Tab//.

    Lo que necesito es mostrar una vista de solo lista, en la que pueda listar todas las personas que estan en la coleccion detalle de la clase Inscripcion.

    ¿Deseas mostrar todas las incripciones? De tal forma que puedas filtrar por inscripción y te liste solo personas.

    ¿Puedes representar gráficamente la lista que deseas?

    Esperamos tu respuesta.

     

Log in to post a comment.