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.