Tengo una entidad llamada Directorio y tengo una entidad llamada Area la cual hereda de Directorio. La entidad Directorio está mapeada contra una tabla llamada directorio, y la entidad Area está mapeada contra una vista (Devuelve los registros de la tabla directorio donde el tipo sea una Aera). Hasta aquí todo bien.
Tengo una tercera entidad en donde defino un campo de tipo Area, más o menos así
@JoinColumn(name="DIRECTORIO")
@ReferenceView("Simple")
@SearchKey
@ManyToOne(optional=false)
private Area area;
Como ves, ese campo me permite seleccionar un Area de una lista de Areas haciendo click en el botón buscar. Aquí es en donde está el problema, cuando le doy click a la linternita para ver el listado de Areas, me salta un error que dice "Unknown column 'DTYPE' in 'where clause'"
Este error me sale cuando la entidad Area hereda de Directorio, cuando Area NO hereda de Directorio, puedo hacer click en la linternita y ver perfectamente todas las Areas.
Te dejo la traza completa por si sirve de ayuda.
Saludos y gracias.
La traza:
------------------------------------------------------------------------------------------------
FINA: [JDBCTabProvider.nextBlock] Ejecutando SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area' con argumentos
11-ago-2009 13:37:51 org.openxava.tab.impl.JDBCTabProvider nextChunk
GRAVE: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'DTYPE' in 'where clause'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1912)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at org.openxava.tab.impl.JDBCTabProvider.nextBlock(JDBCTabProvider.java:235)
at org.openxava.tab.impl.JDBCTabProvider.nextChunk(JDBCTabProvider.java:258)
at org.openxava.tab.impl.EntityTabDataProvider.nextChunk(EntityTabDataProvider.java:35)
at org.openxava.tab.impl.EntityTab.nextChunk(EntityTab.java:298)
at org.openxava.tab.impl.TableModelBean.getRow(TableModelBean.java:120)
at org.openxava.tab.impl.TableModelBean.getValueAt(TableModelBean.java:171)
at org.openxava.tab.impl.XTableModelDecoratorBase.getValueAt(XTableModelDecoratorBase.java:63)
at org.openxava.tab.impl.HiddenXTableModel.getValueAt(HiddenXTableModel.java:70)
at org.openxava.tab.Tab.createTableModel(Tab.java:271)
at org.openxava.tab.Tab.getTableModel(Tab.java:250)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:616)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.referenceSearch_jsp._jspService(referenceSearch_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
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:175)
at org.openxava.web.dwr.Module.fillResult(Module.java:184)
at org.openxava.web.dwr.Module.request(Module.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)
11-ago-2009 13:37:51 org.openxava.tab.impl.EntityTabDataProvider nextChunk
GRAVE: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
java.rmi.RemoteException: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
at org.openxava.tab.impl.JDBCTabProvider.nextChunk(JDBCTabProvider.java:279)
at org.openxava.tab.impl.EntityTabDataProvider.nextChunk(EntityTabDataProvider.java:35)
at org.openxava.tab.impl.EntityTab.nextChunk(EntityTab.java:298)
at org.openxava.tab.impl.TableModelBean.getRow(TableModelBean.java:120)
at org.openxava.tab.impl.TableModelBean.getValueAt(TableModelBean.java:171)
at org.openxava.tab.impl.XTableModelDecoratorBase.getValueAt(XTableModelDecoratorBase.java:63)
at org.openxava.tab.impl.HiddenXTableModel.getValueAt(HiddenXTableModel.java:70)
at org.openxava.tab.Tab.createTableModel(Tab.java:271)
at org.openxava.tab.Tab.getTableModel(Tab.java:250)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:616)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.referenceSearch_jsp._jspService(referenceSearch_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
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:175)
at org.openxava.web.dwr.Module.fillResult(Module.java:184)
at org.openxava.web.dwr.Module.request(Module.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)
11-ago-2009 13:37:51 org.openxava.tab.impl.JDBCTabProvider nextBlock
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> a entidad Directorio está mapeada contra una tabla llamada
> directorio, y la entidad Area está mapeada contra una vista
OpenXava solo soporta la estrategia de una tabla por jerarquía. Si tienes control sobre el esquema trata de mapear Directorio y Area sobre la misma tabla.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Creé las siguientes clases de prueba, Persona y Doctor la cual hereda de Persona, al momento de ejecutar Doctor me da el error que te he comentado anteriormente.
@Entity
@Table(name="persona")
public class Persona {
@Id
@Column(name="cedula")
private Long cedula;
@Column(name="nombre")
private String nombre;
public Long getCedula() {
return cedula;
}
public void setCedula(Long cedula) {
this.cedula = cedula;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
@Entity
@Table(name="persona")
public class Doctor extends Persona {
tus clases Doctor y Persona están bien. Así que el problema está en la tabla.
¿Has generado la tabla usando "updateSchema"?
¿Estás seguro de que la tabla tiene el campo discriminador?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
>>¿Has generado la tabla usando "updateSchema"?
No, lo he hecho "a mano" directamente en la base de datos
>>¿Estás seguro de que la tabla tiene el campo discriminador?
No lo tiene.
Pues el problema era ese, que estaba creando la tabla directamente en la base de datos, he generado la tabla usando "updateSchema" y me ha generado el campo discriminador y listo, ahora si que funciona.
Gracias Javier y saludos...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Lo siento he entrado en la pc de mi compañero y su sesión ya estaba abierta.
>>¿Has generado la tabla usando "updateSchema"?
No, lo he hecho "a mano" directamente en la base de datos
>>¿Estás seguro de que la tabla tiene el campo discriminador?
No lo tiene.
Pues el problema era ese, que estaba creando la tabla directamente en la base de datos, he generado la tabla usando "updateSchema" y me ha generado el campo discriminador y listo, ahora si que funciona.
Gracias Javier y saludos...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hola Javier!
Trataré de explicar el error con un ejemplo.
Tengo una entidad llamada Directorio y tengo una entidad llamada Area la cual hereda de Directorio. La entidad Directorio está mapeada contra una tabla llamada directorio, y la entidad Area está mapeada contra una vista (Devuelve los registros de la tabla directorio donde el tipo sea una Aera). Hasta aquí todo bien.
Tengo una tercera entidad en donde defino un campo de tipo Area, más o menos así
@JoinColumn(name="DIRECTORIO")
@ReferenceView("Simple")
@SearchKey
@ManyToOne(optional=false)
private Area area;
Como ves, ese campo me permite seleccionar un Area de una lista de Areas haciendo click en el botón buscar. Aquí es en donde está el problema, cuando le doy click a la linternita para ver el listado de Areas, me salta un error que dice "Unknown column 'DTYPE' in 'where clause'"
Este error me sale cuando la entidad Area hereda de Directorio, cuando Area NO hereda de Directorio, puedo hacer click en la linternita y ver perfectamente todas las Areas.
Te dejo la traza completa por si sirve de ayuda.
Saludos y gracias.
La traza:
------------------------------------------------------------------------------------------------
FINA: [JDBCTabProvider.nextBlock] Ejecutando SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area' con argumentos
11-ago-2009 13:37:51 org.openxava.tab.impl.JDBCTabProvider nextChunk
GRAVE: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'DTYPE' in 'where clause'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1912)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at org.openxava.tab.impl.JDBCTabProvider.nextBlock(JDBCTabProvider.java:235)
at org.openxava.tab.impl.JDBCTabProvider.nextChunk(JDBCTabProvider.java:258)
at org.openxava.tab.impl.EntityTabDataProvider.nextChunk(EntityTabDataProvider.java:35)
at org.openxava.tab.impl.EntityTab.nextChunk(EntityTab.java:298)
at org.openxava.tab.impl.TableModelBean.getRow(TableModelBean.java:120)
at org.openxava.tab.impl.TableModelBean.getValueAt(TableModelBean.java:171)
at org.openxava.tab.impl.XTableModelDecoratorBase.getValueAt(XTableModelDecoratorBase.java:63)
at org.openxava.tab.impl.HiddenXTableModel.getValueAt(HiddenXTableModel.java:70)
at org.openxava.tab.Tab.createTableModel(Tab.java:271)
at org.openxava.tab.Tab.getTableModel(Tab.java:250)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:616)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.referenceSearch_jsp._jspService(referenceSearch_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
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:175)
at org.openxava.web.dwr.Module.fillResult(Module.java:184)
at org.openxava.web.dwr.Module.request(Module.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)
11-ago-2009 13:37:51 org.openxava.tab.impl.EntityTabDataProvider nextChunk
GRAVE: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
java.rmi.RemoteException: Fallo al ejecutar SELECT directorio.ID, directorio.CODIGO, directorio.NOMBRE, directorio.NOMBRELARGO, directorio.NIT, directorio.RIF, directorio.TELEFONO, directorio.FAX, directorio.HTIPODIRECTORIO, directorio.HLOCALIDAD, directorio.DIRECCION, directorio.DOMICILIADO, directorio.WEBSITE, directorio.EMAIL, directorio.ZONAPOSTAL, directorio.STATUS, directorio.HRESPONSABLE, directorio.HCUENTABANCARIA, directorio.CIUDAD, directorio.TIPOPERSONA from directorio where DTYPE='Area'
at org.openxava.tab.impl.JDBCTabProvider.nextChunk(JDBCTabProvider.java:279)
at org.openxava.tab.impl.EntityTabDataProvider.nextChunk(EntityTabDataProvider.java:35)
at org.openxava.tab.impl.EntityTab.nextChunk(EntityTab.java:298)
at org.openxava.tab.impl.TableModelBean.getRow(TableModelBean.java:120)
at org.openxava.tab.impl.TableModelBean.getValueAt(TableModelBean.java:171)
at org.openxava.tab.impl.XTableModelDecoratorBase.getValueAt(XTableModelDecoratorBase.java:63)
at org.openxava.tab.impl.HiddenXTableModel.getValueAt(HiddenXTableModel.java:70)
at org.openxava.tab.Tab.createTableModel(Tab.java:271)
at org.openxava.tab.Tab.getTableModel(Tab.java:250)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:616)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.referenceSearch_jsp._jspService(referenceSearch_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
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:175)
at org.openxava.web.dwr.Module.fillResult(Module.java:184)
at org.openxava.web.dwr.Module.request(Module.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)
11-ago-2009 13:37:51 org.openxava.tab.impl.JDBCTabProvider nextBlock
Hola Henry,
> a entidad Directorio está mapeada contra una tabla llamada
> directorio, y la entidad Area está mapeada contra una vista
OpenXava solo soporta la estrategia de una tabla por jerarquía. Si tienes control sobre el esquema trata de mapear Directorio y Area sobre la misma tabla.
Hola Javier!
He mapeado Directorio y Area sobre la misma tabla y obtengo el mismo error.
Hola Javier!
Creé las siguientes clases de prueba, Persona y Doctor la cual hereda de Persona, al momento de ejecutar Doctor me da el error que te he comentado anteriormente.
@Entity
@Table(name="persona")
public class Persona {
@Id
@Column(name="cedula")
private Long cedula;
@Column(name="nombre")
private String nombre;
public Long getCedula() {
return cedula;
}
public void setCedula(Long cedula) {
this.cedula = cedula;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
@Entity
@Table(name="persona")
public class Doctor extends Persona {
@Column(name="profesion")
private String profesion;
public String getProfesion() {
return profesion;
}
public void setProfesion(String profesion) {
this.profesion = profesion;
}
}
Hola Henry,
tus clases Doctor y Persona están bien. Así que el problema está en la tabla.
¿Has generado la tabla usando "updateSchema"?
¿Estás seguro de que la tabla tiene el campo discriminador?
Hola Javier!
>>¿Has generado la tabla usando "updateSchema"?
No, lo he hecho "a mano" directamente en la base de datos
>>¿Estás seguro de que la tabla tiene el campo discriminador?
No lo tiene.
Pues el problema era ese, que estaba creando la tabla directamente en la base de datos, he generado la tabla usando "updateSchema" y me ha generado el campo discriminador y listo, ahora si que funciona.
Gracias Javier y saludos...
Lo siento he entrado en la pc de mi compañero y su sesión ya estaba abierta.
>>¿Has generado la tabla usando "updateSchema"?
No, lo he hecho "a mano" directamente en la base de datos
>>¿Estás seguro de que la tabla tiene el campo discriminador?
No lo tiene.
Pues el problema era ese, que estaba creando la tabla directamente en la base de datos, he generado la tabla usando "updateSchema" y me ha generado el campo discriminador y listo, ahora si que funciona.
Gracias Javier y saludos...