You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Jonathan Alvarsson <jo...@gmail.com> on 2007/09/11 11:35:33 UTC
How to map a list of double?
I am trying to map a list of doubles in my bean but I keep getting a
ClassCastException on it.
<resultMap class="MoleculeDescriptor" id="MoleculeDescriptor">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="values" column="id" select="
MoleculeDescriptor.getValueList" />
</resultMap>
<select id="MoleculeDescriptor.getValueList" resultClass="List"
parameterClass="String">
SELECT
value AS value
FROM
DescriptorValue
WHERE
abstractDescriptor=#value#
ORDER BY
arrayPos
</select>
CREATE TABLE DescriptorValue (
id BIGINT AUTO_INCREMENT NOT NULL,
value DOUBLE NOT NULL,
arrayPos INT NOT NULL,
abstractDescriptor VARCHAR(36) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (abstractDescriptor) REFERENCES AbstractDescriptor(id)
) ENGINE=InnoDB;
How can I do this?
Oh and the exception I get:
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation;
uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- The error occurred in mapping/MoleculeDescriptor.xml.
--- The error occurred while applying a result map.
--- Check the MoleculeDescriptor.
--- Check the result mapping for the 'values' property.
--- Cause: java.lang.ClassCastException: [D; nested exception is
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in mapping/MoleculeDescriptor.xml.
--- The error occurred while applying a result map.
--- Check the MoleculeDescriptor.
--- Check the result mapping for the 'values' property.
--- Cause: java.lang.ClassCastException: [D
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in mapping/MoleculeDescriptor.xml.
--- The error occurred while applying a result map.
--- Check the MoleculeDescriptor.
--- Check the result mapping for the 'values' property.
--- Cause: java.lang.ClassCastException: [D
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback
(GeneralStatement.java:188)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject
(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(
SqlMapExecutorDelegate.java:566)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(
SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(
SqlMapSessionImpl.java:106)
at
org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(
SqlMapClientTemplate.java:243)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(
SqlMapClientTemplate.java:193)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(
SqlMapClientTemplate.java:241)
at net.bioclipse.pcm.dao.GenericDao.getById(GenericDao.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(
AopUtils.java:296)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:177)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:144)
at net.bioclipse.pcm.dao.FetchIntroductionInterceptor.invoke(
FetchIntroductionInterceptor.java:22)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
JdkDynamicAopProxy.java:204)
at $Proxy0.getById(Unknown Source)
at net.bioclipse.pcm.dao.GenericDaoTest.testGetById(GenericDaoTest.java
:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at org.springframework.test.ConditionalTestCase.runBare(
ConditionalTestCase.java:69)
at
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.access$001
(AbstractAnnotationAwareTransactionalTests.java:47)
at
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests$1.run
(AbstractAnnotationAwareTransactionalTests.java:115)
at
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTest
(AbstractAnnotationAwareTransactionalTests.java:180)
at
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTestTimed
(AbstractAnnotationAwareTransactionalTests.java:153)
at
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runBare
(AbstractAnnotationAwareTransactionalTests.java:111)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(
JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(
TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
RemoteTestRunner.java:196)
Caused by: java.lang.ClassCastException: [D
at
com.ibatis.sqlmap.engine.mapping.result.loader.ResultLoader.listToArray(
ResultLoader.java:85)
at com.ibatis.sqlmap.engine.mapping.result.loader.ResultLoader.getResult
(ResultLoader.java:75)
at
com.ibatis.sqlmap.engine.mapping.result.loader.ResultLoader.loadResult(
ResultLoader.java:59)
at
com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getNestedSelectMappingValue
(BasicResultMap.java:502)
at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(
BasicResultMap.java:340)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(
SqlExecutor.java:381)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(
SqlExecutor.java:301)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(
SqlExecutor.java:190)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(
GeneralStatement.java:205)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback
(GeneralStatement.java:173)
... 44 more
--
// Jonathan