ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: N+ 1 selects
Date Fri, 30 Sep 2005 16:29:01 GMT
Looks to me like you're:

1) Using an older version of iBATIS or at least an incorrect DTD reference
that does not support result[@resultMap]
2) You're using half of the N+1 selects solution....which will not do much
for you.

Perhaps ignore this problem for now, and instead state exactly what it is
you're trying to do. We'll start there and see if it leads to this problem
again.

Cheers,
Clinton

On 9/29/05, John Chien <john.chien@ncmail.net> wrote:
>
> Jean:
>
> Thank you for your response.
> That's my fault. My intention actually is not tries to do the N+1 selects,
> but have returned result putting into a bean.
> This bean will be used as a property of another bean.
>
> I do not know if my way of doing it is correct or not. Somehow it does not
> work
>
> Following is my new try and the trace:
>
>
> *****************************************************************************************
> <sqlMap namespace="EhsInspector">
>
> <typeAlias alias="ehsInspectors" type="
> us.nc.state.enr.bets.util.EhsInspectorBean"/>
> <typeAlias alias="commonFinder" type="
> us.nc.state.enr.bets.finder.CommonFinder" />
>
> <resultMap id="getEhsInspectorsANDMap" class="java.util.HashMap" >
> <result property="id" column="id" />
> <result property="value" resultMap="EhsInspector.ehsInspectorsMap"/> *<-----
This is line 15
> *
> </resultMap>
>
> <resultMap id="ehsInspectorsMap" class="ehsInspectors">
> <result property="last_name" column="last_name" jdbcType="VARCHAR"
> javaType="java.lang.String" />
> <result property="first_name" column="first_name" jdbcType="VARCHAR"
> javaType="java.lang.String" />
> <result property="middle_initial" column="middle_initial"
> jdbcType="VARCHAR" javaType="java.lang.String" />
> <result property="added_date" column="added_date" jdbcType="VARCHAR"
> javaType="java.lang.String" />
> <result property="last_update_date" column="last_update_date"
> jdbcType="VARCHAR" javaType="java.lang.String" />
> <result property="last_update_user" column="last_update_user"
> jdbcType="VARCHAR" javaType="java.lang.String" />
> </resultMap>
>
> <select id="getEhsInspectorsAND" parameterClass="commonFinder"
> resultMap="getEhsInspectorsANDMap">
>
> SELECT
> EHS_ID as id,
> EHS_NAME_LAST as last_name,
> EHS_NAME_FIRST as first_name,
> EHS_NAME_MI as middle_initial,
> EHS_ADDED_DT as added_date,
> EHS_LAST_UPDATE_DT as last_update_date,
> EHS_LAST_UPDATE_USER as last_update_user
> FROM EH.BETS_EHS_INSPECTOR
> ORDER BY EHS_ID
> </select>
>
> </sqlMap>
>
> ******************************************************************************************************
>
> Trace:
>
> <2005/9/29 下午02時42分36秒 GMT-05:00> <Error> <HTTP> <BEA-101216>
<Servlet:
> "context" failed to preload on startup in Web application: "eh".
> javax.servlet.ServletException: Error creating bean with name
> 'sqlMapClient' defined in resource [/WEB-INF/dataAccessContext-bets.xml]
> of ServletContext: Initialization of bean failed; nested exception is
> com.ibatis.sqlmap.client.SqlMapException: There was an error while
> building the SqlMap instance.
> --- The error occurred in
> us/nc/state/enr/bets/dao/ibatis/maps/EhsInspectorFinder.xml.
> --- The error occurred while loading the SQL Map resource.
> --- Cause: com.ibatis.sqlmap.client.SqlMapException: XML Parser Error.
> Cause: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must bedeclared for element type "result".
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> at weblogic.servlet.internal.ServletStubImpl.createServlet(
> ServletStubImpl.java:919)
> at weblogic.servlet.internal.ServletStubImpl.createInstances(
> ServletStubImpl.java:883)
> at weblogic.servlet.internal.ServletStubImpl.prepareServlet(
> ServletStubImpl.java:822)
> at weblogic.servlet.internal.WebAppServletContext.preloadServlet(
> WebAppServletContext.java:3333)
> at weblogic.servlet.internal.WebAppServletContext.preloadServlets(
> WebAppServletContext.java:3290)
> at weblogic.servlet.internal.WebAppServletContext.preloadServlets(
> WebAppServletContext.java:3276)
> at weblogic.servlet.internal.WebAppServletContext.preloadResources(
> WebAppServletContext.java:3259)
> at weblogic.servlet.internal.WebAppServletContext.setStarted(
> WebAppServletContext.java:5949)
> at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:862)
> at weblogic.j2ee.J2EEApplicationContainer.start(
> J2EEApplicationContainer.java:2127)
> at weblogic.j2ee.J2EEApplicationContainer.activate(
> J2EEApplicationContainer.java:2168)
> at weblogic.j2ee.J2EEApplicationContainer.activate(
> J2EEApplicationContainer.java:2115)
> at
> weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(
> SlaveDeployer.java:3082)
> at
> weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications
> (SlaveDeployer.java:1751)
> at weblogic.management.deploy.slave.SlaveDeployer.resume(
> SlaveDeployer.java:359)
> at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(
> DeploymentManagerServerLifeCycleImpl.java:229)
> at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
> at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:966)
> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
> at weblogic.Server.main(Server.java:32)
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'sqlMapClient' defined in resource
> [/WEB-INF/dataAccessContext-bets.xml] of ServletContext: Initialization of
> bean failed; nested exception is
> com.ibatis.sqlmap.client.SqlMapException: There was an error while
> building the SqlMap instance.
> --- The error occurred in
> us/nc/state/enr/bets/dao/ibatis/maps/EhsInspectorFinder.xml.
> --- The error occurred while loading the SQL Map resource.
> --- Cause: com.ibatis.sqlmap.client.SqlMapException: XML Parser Error.
> Cause: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must bedeclared for element type "result".
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:300)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:205)
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(
> AbstractBeanFactory.java:204)
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(
> AbstractBeanFactory.java:136)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
> (DefaultListableBeanFactory.java:230)
> at org.springframework.context.support.AbstractApplicationContext.refresh(
> AbstractApplicationContext.java:284)
> at
> org.springframework.web.context.support.XmlWebApplicationContext.refresh(
> XmlWebApplicationContext.java:131)
> at
> org.springframework.web.context.ContextLoader.createWebApplicationContext(
> ContextLoader.java:156)
> at org.springframework.web.context.ContextLoader.initWebApplicationContext
> (ContextLoader.java:97)
> at org.springframework.web.context.ContextLoaderServlet.init(
> ContextLoaderServlet.java:80)
> at javax.servlet.GenericServlet.init(GenericServlet.java:258)
> at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(
> ServletStubImpl.java:1028)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(SecurityManager.java
> :121)
> at weblogic.servlet.internal.ServletStubImpl.createServlet(
> ServletStubImpl.java:904)
> ... 19 more
> Caused by: com.ibatis.sqlmap.client.SqlMapException: There was an error
> while building the SqlMap instance.
> --- The error occurred in
> us/nc/state/enr/bets/dao/ibatis/maps/EhsInspectorFinder.xml.
> --- The error occurred while loading the SQL Map resource.
> --- Cause: com.ibatis.sqlmap.client.SqlMapException: XML Parser Error.
> Cause: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must bedeclared for element type "result".
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> Caused by: com.ibatis.sqlmap.client.SqlMapException: XML Parser Error.
> Cause: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must bedeclared for element type "result".
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> at com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.buildSqlMap
> (XmlSqlMapClientBuilder.java:214)
> at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(
> SqlMapClientBuilder.java:61)
> at
> org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(
> SqlMapClientFactoryBean.java:109)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
> (AbstractAutowireCapableBeanFactory.java:1057)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:287)
> ... 33 more
> Caused by: com.ibatis.sqlmap.client.SqlMapException: XML Parser Error.
> Cause: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must bedeclared for element type "result".
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> at com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.getDoc(
> XmlSqlMapClientBuilder.java:1286)
> at
> com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.parseSqlMapRef
> (XmlSqlMapClientBuilder.java:429)
> at
> com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.parseSqlMapConfig
> (XmlSqlMapClientBuilder.java:240)
> at com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.buildSqlMap
> (XmlSqlMapClientBuilder.java:210)
> ... 37 more
> Caused by: org.xml.sax.SAXException: Error: URI=null Line=15: Attribute
> "resultMap" must be declared for element type "result".
> at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:281)
> at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(
> DocumentBuilderImpl.java:206)
> at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:76)
> at com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder.getDoc(
> XmlSqlMapClientBuilder.java:1283)
> ... 40 more
>

Mime
View raw message