Well that's what I thought I was doing. My field in my bean is

private List<Double> values;

with setter:
public void setValues(List<Double> values) {
        this.values = values;
}

Does my mapping somehow not match this?

On 9/11/07, Niels Beekman <[EMAIL PROTECTED]> wrote:
>
>  This seems to be a bug, iBATIS tries to cast a double array to an Object
> array. A workaround would probably be to change the double array to a Double
> list.
>
>
>
> Niels
>  ------------------------------
>
> *From:* Jonathan Alvarsson [mailto:[EMAIL PROTECTED]
> *Sent:* dinsdag 11 september 2007 11:36
> *To:* [email protected]
> *Subject:* 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
>



-- 
// Jonathan

Reply via email to