Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 3613 invoked from network); 11 Sep 2007 13:54:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Sep 2007 13:54:25 -0000 Received: (qmail 75645 invoked by uid 500); 11 Sep 2007 13:54:16 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 75633 invoked by uid 500); 11 Sep 2007 13:54:15 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 75622 invoked by uid 99); 11 Sep 2007 13:54:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Sep 2007 06:54:15 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [83.247.21.92] (HELO mail.local.wis.nl) (83.247.21.92) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 11 Sep 2007 13:55:46 +0000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C7F47B.1D4D8D88" X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Subject: RE: How to map a list of double? Date: Tue, 11 Sep 2007 15:53:20 +0200 Message-ID: <50CA25BD6EEA954FA592C097399942E31937610E@CM1.wis.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: How to map a list of double? Thread-Index: Acf0dTvPRNUPtYB0ROu33Q0RZvXgqgABW7PQ From: "Niels Beekman" To: X-Virus-Checked: Checked by ClamAV on apache.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C7F47B.1D4D8D88 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I don't understand how iBATIS thinks you're trying to map to an array, do you have overloads for the values-property? Try setting some debug breakpoints in ResultLoader and find out what's going on. It definitely should be possible to map to a List or array. =20 Niels ________________________________ From: Jonathan Alvarsson [mailto:jonathan.alvarsson@gmail.com]=20 Sent: dinsdag 11 september 2007 15:11 To: user-java@ibatis.apache.org Subject: Re: How to map a list of double? =20 No difference. I have tried: and both result in ClassCastException. (It reads the file correctly though because ouble rendered a class not found exception)=20 Isn't this supposed to be possible to do? On 9/11/07, Niels Beekman wrote:=20 Hm, your result class of MoleculeDescriptor.getValueList is wrong, try changing it to double. =20 ________________________________ From: Jonathan Alvarsson [mailto:jonathan.alvarsson@gmail.com]=20 Sent: dinsdag 11 september 2007 13:22 To: user-java@ibatis.apache.org Subject: Re: How to map a list of double? =20 Well that's what I thought I was doing. My field in my bean is=20 private List values; with setter:=20 public void setValues(List values) { this.values =3D values; } Does my mapping somehow not match this? On 9/11/07, Niels Beekman < n.beekman@wis.nl > 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. =20 Niels ________________________________ From: Jonathan Alvarsson [mailto: jonathan.alvarsson@gmail.com]=20 Sent: dinsdag 11 september 2007 11:36 To: user-java@ibatis.apache.org Subject: How to map a list of double? =20 I am trying to map a list of doubles in my bean but I keep getting a ClassCastException on it. =20 CREATE TABLE DescriptorValue ( id BIGINT AUTO_INCREMENT NOT NULL, value DOUBLE NOT NULL, arrayPos INT NOT NULL, abstractDescriptor VARCHAR(36) NOT NULL,=20 PRIMARY KEY (id), FOREIGN KEY (abstractDescriptor) REFERENCES AbstractDescriptor(id) ) ENGINE=3DInnoDB; 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]; =20 --- The error occurred in mapping/MoleculeDescriptor.xml. =20 --- The error occurred while applying a result map. =20 --- Check the MoleculeDescriptor. =20 --- Check the result mapping for the 'values' property. =20 --- Cause: java.lang.ClassCastException: [D; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: =20 --- The error occurred in mapping/MoleculeDescriptor.xml. =20 --- The error occurred while applying a result map. =20 --- Check the MoleculeDescriptor. =20 --- Check the result mapping for the 'values' property. =20 --- Cause: java.lang.ClassCastException: [D Caused by: com.ibatis.common.jdbc.exception.NestedSQLException : =20 --- The error occurred in mapping/MoleculeDescriptor.xml. =20 --- The error occurred while applying a result map. =20 --- Check the MoleculeDescriptor. =20 --- Check the result mapping for the 'values' property. =20 --- Cause: java.lang.ClassCastException: [D at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery WithCallback(GeneralStatement.java:188) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery ForObject (GeneralStatement.java:104) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM apExecutorDelegate.java:566) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM apExecutorDelegate.java :541) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSes sionImpl.java:106) at org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(S qlMapClientTemplate.java:243) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClient Template.java:193) at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMa pClientTemplate.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)=20 at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection( AopUtils.java:296) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinp oint (ReflectiveMethodInvocation.java:177) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref lectiveMethodInvocation.java:144) at net.bioclipse.pcm.dao.FetchIntroductionInterceptor.invoke (FetchIntroductionInterceptor.java:22) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Ref lectiveMethodInvocation.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)=20 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.AbstractAnnotationAwareTransactional Tests.access$001 (AbstractAnnotationAwareTransactionalTests.java:47) at org.springframework.test.annotation.AbstractAnnotationAwareTransactional Tests$1.run(AbstractAnnotationAwareTransactionalTests.java:115) at org.springframework.test.annotation.AbstractAnnotationAwareTransactional Tests.runTest (AbstractAnnotationAwareTransactionalTests.java:180) at org.springframework.test.annotation.AbstractAnnotationAwareTransactional Tests.runTestTimed(AbstractAnnotationAwareTransactionalTests.java:153) at org.springframework.test.annotation.AbstractAnnotationAwareTransactional Tests.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.ja va:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe stRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe stRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRun ner.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(R esultLoader.java:59) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getNestedSelectMa ppingValue(BasicResultMap.java :502) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(BasicR esultMap.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.sqlExecuteQu ery(GeneralStatement.java :205) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery WithCallback(GeneralStatement.java:173) ... 44 more --=20 // Jonathan=20 --=20 // Jonathan=20 --=20 // Jonathan=20 ------_=_NextPart_001_01C7F47B.1D4D8D88 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

I don’t understand how iBATIS = thinks you’re trying to map to an array, do you have overloads for the values-property? Try setting some debug breakpoints in ResultLoader and = find out what’s going on. It definitely should be possible to map to a = List or array.

 

Niels


From: = Jonathan Alvarsson [mailto:jonathan.alvarsson@gmail.com]
Sent: dinsdag 11 = september 2007 15:11
To: user-java@ibatis.apache.org
Subject: Re: How to map a = list of double?

 

No difference. = I have tried:
<select id=3D"MoleculeDescriptor.getValueList" = resultClass=3D"Double" parameterClass=3D"String">
        SELECT
            value AS = value
        FROM
            = DescriptorValue
        WHERE
            abstractDescriptor=3D#value#
        ORDER BY
            arrayPos
</select>


and

<select id=3D"MoleculeDescriptor.getValueList" = resultClass=3D"double" parameterClass=3D"String">
        SELECT
            value AS = value
        FROM
            = DescriptorValue
        WHERE
            abstractDescriptor=3D#value#
        ORDER BY
            arrayPos
</select>


both result in ClassCastException. (It reads the file correctly though = because ouble rendered a class not found exception)

Isn't this supposed to be possible to do?

On 9/11/07, Niels Beekman = <n.beekman@wis.nl> = wrote:

Hm, your result class of = MoleculeDescriptor.getValueList is wrong, try changing it to double.

 


From: Jonathan Alvarsson = [mailto:jonathan.alvarsson@gmail.com]
Sent: dinsdag 11 = september 2007 13:22
To: user-java@ibatis.apache.org
Subject: Re: How to map a = list of double?

 

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 =3D values;
}

Does my mapping somehow not match this?

On 9/11/07, Niels Beekman < n.beekman@wis.nl> = 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: jonathan.alvarsson@gmail.com]
Sent: dinsdag 11 = september 2007 11:36
To: user-java@ibatis.apache.org
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=3D"MoleculeDescriptor" = id=3D"MoleculeDescriptor">
        <result property=3D"id"     column=3D"id"   />
        <result property=3D"name"   column=3D"name" = />
        <result = property=3D"values" column=3D"id" = select=3D"MoleculeDescriptor.getValueList" />
</resultMap>

<select id=3D"MoleculeDescriptor.getValueList " resultClass=3D"List" = parameterClass=3D"String">
        SELECT
            value AS = value
        FROM
            = DescriptorValue
        WHERE
            abstractDescriptor=3D#value#
        ORDER BY
            arrayPos
</select>

CREATE TABLE DescriptorValue (
    id       BIGINT = AUTO_INCREMENT NOT NULL,
    value    DOUBLE           &= nbsp;    NOT NULL,
    arrayPos INT           &nbs= p;       NOT NULL,
    abstractDescriptor VARCHAR(36) NOT NULL,

    PRIMARY KEY (id),
    FOREIGN KEY (abstractDescriptor) REFERENCES AbstractDescriptor(id)
) ENGINE=3DInnoDB;


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.executeQueryW= ithCallback(GeneralStatement.java:188)
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryF= orObject (GeneralStatement.java:104)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMa= pExecutorDelegate.java:566)
    at = com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMa= pExecutorDelegate.java :541)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSess= ionImpl.java:106)
    at org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(Sq= lMapClientTemplate.java:243)
    at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientT= emplate.java:193)
    at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMap= ClientTemplate.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(A= opUtils.java:296)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpo= int (ReflectiveMethodInvocation.java:177)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl= ectiveMethodInvocation.java:144)
    at = net.bioclipse.pcm.dao.FetchIntroductionInterceptor.invoke (FetchIntroductionInterceptor.java:22)
    at = org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl= ectiveMethodInvocation.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)<= br>     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.AbstractAnnotationAwareTransactionalT= ests.access$001 (AbstractAnnotationAwareTransactionalTests.java:47)
    at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalT= ests$1.run(AbstractAnnotationAwareTransactionalTests.java:115)
    at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalT= ests.runTest (AbstractAnnotationAwareTransactionalTests.java:180)
    at = org.springframework.test.annotation.AbstractAnnotationAwareTransactionalT= ests.runTestTimed(AbstractAnnotationAwareTransactionalTests.java:153)
=     at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalT= ests.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.jav= a:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTes= tRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTes= tRunner.java:673)
    at = org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunn= er.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(R= esultLoader.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(Re= sultLoader.java:59)
    at = com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getNestedSelectMap= pingValue(BasicResultMap.java :502)
    at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(BasicRe= sultMap.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.j= ava:190)
    at = com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQue= ry(GeneralStatement.java :205)
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryW= ithCallback(GeneralStatement.java:173)
    ... 44 more



--
// Jonathan




--
// Jonathan




--
// Jonathan

------_=_NextPart_001_01C7F47B.1D4D8D88--