You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Nesh Nenad Mijailovic (JIRA)" <ib...@incubator.apache.org> on 2009/03/01 22:55:13 UTC

[jira] Created: (IBATIS-583) Result Map property does not work with columns starting with a single letter eg S_CUST_REF_NUMBER

Result Map property does not work with columns starting with a single letter eg S_CUST_REF_NUMBER
-------------------------------------------------------------------------------------------------

                 Key: IBATIS-583
                 URL: https://issues.apache.org/jira/browse/IBATIS-583
             Project: iBatis for Java
          Issue Type: Bug
          Components: SQL Maps
    Affects Versions: 2.3.3, 2.3.0
         Environment: *nix, Java 1.5
            Reporter: Nesh Nenad Mijailovic



   Looks like getter/setter for this field is not correct, example:
   <result property="sCustRefNumber" column="sCustRefNumber" jdbcType="VARCHAR" />

   Got around the problem by setting <result property="SCustRefNumber" column="SCustRefNumber" jdbcType="VARCHAR" /> in the result map.

   private String sCustRefNumber;

   @Column(name = "S_CUST_REF_NUMBER")
   public String getSCustRefNumber() {
       return sCustRefNumber;
   }

   public void setSCustRefNumber(String sCustRefNumber) {
       this.sCustRefNumber = sCustRefNumber;
   }

   Caused by: java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:109)
	at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:90)
	at org.springframework.orm.ibatis.SqlMapClientFactoryBean.buildSqlMapClient(SqlMapClientFactoryBean.java:326)
	at org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(SqlMapClientFactoryBean.java:280)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3862)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4365)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:523)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:572)
	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:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:62)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:106)
	... 39 more
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60)
	... 40 more
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:62)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:55)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:394)
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
	... 44 more
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60)
	... 47 more
Caused by: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
	at com.ibatis.common.beans.ClassInfo.getSetterType(ClassInfo.java:273)
	at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForSetter(GenericProbe.java:251)
	at com.ibatis.common.beans.GenericProbe.getPropertyTypeForSetter(GenericProbe.java:135)
	at com.ibatis.sqlmap.engine.builder.xml.BaseParser.resolveTypeHandler(BaseParser.java:66)
	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$15.process(SqlMapParser.java:450)
	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
	

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (IBATIS-583) Result Map property does not work with columns starting with a single letter eg S_CUST_REF_NUMBER

Posted by "Jeff Butler (JIRA)" <ib...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/IBATIS-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeff Butler closed IBATIS-583.
------------------------------

    Resolution: Invalid

This is not a bug - this is the way the JavaBeans spec is written.  There are weird rules when the property's second letter is upper case.

If your property is sCustRefNumber, then the getter should be getsCustRefNumber().



> Result Map property does not work with columns starting with a single letter eg S_CUST_REF_NUMBER
> -------------------------------------------------------------------------------------------------
>
>                 Key: IBATIS-583
>                 URL: https://issues.apache.org/jira/browse/IBATIS-583
>             Project: iBatis for Java
>          Issue Type: Bug
>          Components: SQL Maps
>    Affects Versions: 2.3.0, 2.3.3
>         Environment: *nix, Java 1.5
>            Reporter: Nesh Nenad Mijailovic
>
>    Looks like getter/setter for this field is not correct, example:
>    <result property="sCustRefNumber" column="sCustRefNumber" jdbcType="VARCHAR" />
>    Got around the problem by setting <result property="SCustRefNumber" column="SCustRefNumber" jdbcType="VARCHAR" /> in the result map.
>    private String sCustRefNumber;
>    @Column(name = "S_CUST_REF_NUMBER")
>    public String getSCustRefNumber() {
>        return sCustRefNumber;
>    }
>    public void setSCustRefNumber(String sCustRefNumber) {
>        this.sCustRefNumber = sCustRefNumber;
>    }
>    Caused by: java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:109)
> 	at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:90)
> 	at org.springframework.orm.ibatis.SqlMapClientFactoryBean.buildSqlMapClient(SqlMapClientFactoryBean.java:326)
> 	at org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(SqlMapClientFactoryBean.java:280)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
> 	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
> 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
> 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
> 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
> 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
> 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
> 	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
> 	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
> 	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
> 	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3862)
> 	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4365)
> 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> 	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> 	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> 	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
> 	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
> 	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
> 	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
> 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
> 	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> 	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> 	at org.apache.catalina.core.StandardService.start(StandardService.java:523)
> 	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
> 	at org.apache.catalina.startup.Catalina.start(Catalina.java:572)
> 	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:585)
> 	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:62)
> 	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:106)
> 	... 39 more
> Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
> 	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
> 	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60)
> 	... 40 more
> Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:62)
> 	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:55)
> 	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:394)
> 	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
> 	... 44 more
> Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap/result'.  Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
> 	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
> 	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
> 	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
> 	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60)
> 	... 47 more
> Caused by: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'sCustRefNumber' in class 'com.myrepairstore.model.JobsEntity'
> 	at com.ibatis.common.beans.ClassInfo.getSetterType(ClassInfo.java:273)
> 	at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForSetter(GenericProbe.java:251)
> 	at com.ibatis.common.beans.GenericProbe.getPropertyTypeForSetter(GenericProbe.java:135)
> 	at com.ibatis.sqlmap.engine.builder.xml.BaseParser.resolveTypeHandler(BaseParser.java:66)
> 	at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$15.process(SqlMapParser.java:450)
> 	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
> 	

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.