Ohhh, OK. That really has nothing to do with the n+1 problem (which is for solving parent-child relationship issues...in databases).
You want to use queryForMap(queryName, parmBean, keyPropName) instead. Larry On 9/30/05, John Chien <[EMAIL PROTECTED]> wrote: > > Clienton: > > I want to get back a HaspMap that has keys and values. > > Each key corresponds to different id (EHS_ID), > Each value is a bean that has all the fields returned from query that > corresponds to that id. > > Normally, the query results in a list of bean. Each bean has all the fields > selected in the query. > > Since the EHS_ID is unique (primary key of the table), I would like to get > back a HashMap that has > all the EHS_ID as its key and all the columns correspond to a specific key > to be in a bean. > > If you can help me in this subject, I will be very appreciate. > > Thanks, > > John Chien > > > Clinton Begin wrote: > Looks to me like you're: > > 1) Using an older version of iBATIS or at least an incorrect DTD reference > that does not support [EMAIL PROTECTED] > 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 <[EMAIL PROTECTED]> 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 > > >