You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by xiaobo <gu...@qq.com.INVALID> on 2022/02/11 15:26:19 UTC
回复:cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList error
the first filed's java class is as following, and SQL
select count(a.PA01AI01) from p.PRH_PA01 as a
failed with :
Caused by: java.sql.SQLException: Error while executing SQL "select count(a.PA01AI01) from p.PRH_PA01 as a
": From line 1, column 16 to line 1, column 23: Column 'PA01AI01' not found in table 'a'
public class PRH_PA01 {
String PA01AI01;
Date PA01AR01;
String PA01BQ01;
String PA01BD01;
String PA01BI01;
String PA01BI02;
String PA01BD02;
Long PA01CS01 ;
String PA01DQ01 ;
String PA01DQ02 ;
Date PA01DR01;
Date PA01DR02 ;
Long PA01ES01;
List<PRH_PA01CH> PRH_PA01CH;
public String getPA01AI01() {
return PA01AI01;
}
public void setPA01AI01(String pA01AI01) {
PA01AI01 = pA01AI01;
}
public Date getPA01AR01() {
return PA01AR01;
}
public void setPA01AR01(Date pA01AR01) {
PA01AR01 = pA01AR01;
}
public String getPA01BQ01() {
return PA01BQ01;
}
public void setPA01BQ01(String pA01BQ01) {
PA01BQ01 = pA01BQ01;
}
public String getPA01BD01() {
return PA01BD01;
}
public void setPA01BD01(String pA01BD01) {
PA01BD01 = pA01BD01;
}
public String getPA01BI01() {
return PA01BI01;
}
public void setPA01BI01(String pA01BI01) {
PA01BI01 = pA01BI01;
}
public String getPA01BI02() {
return PA01BI02;
}
public void setPA01BI02(String pA01BI02) {
PA01BI02 = pA01BI02;
}
public String getPA01BD02() {
return PA01BD02;
}
public void setPA01BD02(String pA01BD02) {
PA01BD02 = pA01BD02;
}
public Long getPA01CS01() {
return PA01CS01;
}
public void setPA01CS01(Long pA01CS01) {
PA01CS01 = pA01CS01;
}
public String getPA01DQ01() {
return PA01DQ01;
}
public void setPA01DQ01(String pA01DQ01) {
PA01DQ01 = pA01DQ01;
}
public String getPA01DQ02() {
return PA01DQ02;
}
public void setPA01DQ02(String pA01DQ02) {
PA01DQ02 = pA01DQ02;
}
public Date getPA01DR01() {
return PA01DR01;
}
public void setPA01DR01(Date pA01DR01) {
PA01DR01 = pA01DR01;
}
public Date getPA01DR02() {
return PA01DR02;
}
public void setPA01DR02(Date pA01DR02) {
PA01DR02 = pA01DR02;
}
public Long getPA01ES01() {
return PA01ES01;
}
public void setPA01ES01(Long pA01ES01) {
PA01ES01 = pA01ES01;
}
public List<PRH_PA01CH> getPRH_PA01CH() {
return PRH_PA01CH;
}
public void setPRH_PA01CH(List<PRH_PA01CH> pRH_PA01CH) {
PRH_PA01CH = pRH_PA01CH;
}
}
------------------ 原始邮件 ------------------
发件人: "xiaobo " <guxiaobo1982@qq.com>;
发送时间: 2022年2月11日(星期五) 晚上6:09
收件人: "dev"<dev@calcite.apache.org>;
主题: cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList error
Hi,
Our testing code failed with the following error, can you help with it:
Error while executing SQL "select count(1)
from p.PRH_PA01
": class com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList (com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 and org.apache.calcite.runtime.FlatLists$ComparableList are in unnamed module of loader 'app')
at com.xsmartware.javatest.pbc2p.CalciteBaseVarGenerator.generateVariable(CalciteBaseVarGenerator.java:61)
at com.xsmartware.javatest.pbc2p.PBC2PTestRunner.test1(PBC2PTestRunner.java:68)
at com.xsmartware.javatest.pbc2p.PBC2PTestRunner.run(PBC2PTestRunner.java:54)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:758)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:748)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:309)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
at com.xsmartware.javatest.JavaTestApplication.main(JavaTestApplication.java:9)
Caused by: java.sql.SQLException: Error while executing SQL "select count(1)
from p.PRH_PA01
": class com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList (com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 and org.apache.calcite.runtime.FlatLists$ComparableList are in unnamed module of loader 'app')
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
at com.xsmartware.common.util.SQLUtil.exeGetLong(SQLUtil.java:42)
at com.xsmartware.javatest.pbc2p.CalciteBaseVarGenerator.generateVariable(CalciteBaseVarGenerator.java:39)
... 8 more
Caused by: java.lang.ClassCastException: class com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList (com.xsmartware.pbcm.sdk.pbc2p.PRH_PA01 and org.apache.calcite.runtime.FlatLists$ComparableList are in unnamed module of loader 'app')
at Baz$1.apply(Unknown Source)
at Baz$1.apply(Unknown Source)
at org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory$AccumulatorAdderSeq.apply(BasicAggregateLambdaFactory.java:81)
at org.apache.calcite.linq4j.EnumerableDefaults.aggregate(EnumerableDefaults.java:133)
at org.apache.calcite.linq4j.DefaultEnumerable.aggregate(DefaultEnumerable.java:107)
at Baz.bind(Unknown Source)
at org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:363)
at org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:338)
at org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:578)
at org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:569)
at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:184)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:666)
at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:638)
at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:674)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
... 11 more
we use ReflectiveSchema with the following target class:
public class PBC2PCalCiteSchema {
public PRH_PA01[] PRH_PA01 = {};
public PRH_PA01CH[] PRH_PA01CH = {};
public PIM_PB01A[] PIM_PB01A= {};
public PIM_PB01B[] PIM_PB01B= {};
public PMM_PB02[] PMM_PB02= {};
public PRM_PB03[] PRM_PB03= {};
public POM_PB04[] POM_PB04= {};
public PSM[] PSM= {};
public PSM_FACTORS[] PSM_FACTORS= {};
public PCO_PC02[] PCO_PC02= {};
public PCO_PC02AH[] PCO_PC02AH= {};
public PCO_PC02BH[] PCO_PC02BH= {};
public PCO_PC02DH[] PCO_PC02DH= {};
public PCO_PC02KH[] PCO_PC02KH= {};
public PNO_PC03[] PNO_PC03= {};
public PNO_PC030H[] PNO_PC030H= {};
public PPO_PC04[] PPO_PC04= {};
public PPO_PC040H[] PPO_PC040H= {};
public PQO_PC05[] PQO_PC05= {};
public PDA_PD01[] PDA_PD01= {};
public PDA_PD01DH[] PDA_PD01DH= {};
public PDA_PD01EH[] PDA_PD01EH= {};
public PDA_PD01FH[] PDA_PD01FH= {};
public PDA_PD01GH[] PDA_PD01GH= {};
public PDA_PD01HH[] PDA_PD01HH= {};
public PDA_PD01ZH[] PDA_PD01ZH= {};
public PCA_PD02[] PCA_PD02= {};
public PCA_PD02CH[] PCA_PD02CH= {};
public PCA_PD02DH[] PCA_PD02DH= {};
public PCA_PD02ZH[] PCA_PD02ZH= {};
public PCR_PD03[] PCR_PD03= {};
public PCR_PD03ZH[] PCR_PD03ZH= {};
public PND_PE01[] PND_PE01= {};
public PND_PE01ZH[] PND_PE01ZH= {};
public POT_PF01[] POT_PF01= {};
public POT_PF01ZH[] POT_PF01ZH= {};
public PCJ_PF02[] PCJ_PF02= {};
public PCJ_PF02ZH[] PCJ_PF02ZH= {};
public PCE_PF03[] PCE_PF03= {};
public PCE_PF03ZH[] PCE_PF03ZH= {};
public PAP_PF04[] PAP_PF04= {};
public PAP_PF04ZH[] PAP_PF04ZH= {};
public PHF_PF05[] PHF_PF05= {};
public PHF_PF05ZH[] PHF_PF05ZH= {};
public PBS_PF06[] PBS_PF06= {};
public PBS_PF06ZH[] PBS_PF06ZH= {};
public PPQ_PF07[] PPQ_PF07= {};
public PPQ_PF07ZH[] PPQ_PF07ZH= {};
public PAH_PF08[] PAH_PF08= {};
public PAH_PF08ZH[] PAH_PF08ZH= {};
public POS_PG01[] POS_PG01= {};
public POS_PG010H[] POS_PG010H= {};
public POQ_PH01[] POQ_PH01= {};
}
Re: 回复:cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList error
Posted by Ruben Q L <ru...@gmail.com>.
Hello,
per ReflectiveSchema javadoc [1]:
"Implementation of {@link org.apache.calcite.schema.Schema} that exposes
the public fields and methods in a Java object."
[1]
https://github.com/apache/calcite/blob/812e3e98eae518cf85cd1b6b7f055fb96784a423/core/src/main/java/org/apache/calcite/adapter/java/ReflectiveSchema.java#L71
On Sat, Feb 12, 2022 at 1:54 AM xiaobo <gu...@qq.com.invalid> wrote:
> Sorry for the HTML escape characters, I rewrite the problem as following:
>
> SQL select count(a.PA01AI01) from p.PRH_PA01 as a
> failed with :
> Caused by: java.sql.SQLException: Error while executing SQL "select
> count(a.PA01AI01) from p.PRH_PA01 as a
> ": From line 1, column 16 to line 1, column 23: Column 'PA01AI01' not
> found in table 'a'
>
> to resolve the problem we must make the table fields of the target Java
> class as public, is this a rule for ReflectiveSchema?
Re: 回复:cannot be cast to class org.apache.calcite.runtime.FlatLists$ComparableList error
Posted by xiaobo <gu...@qq.com.INVALID>.
Sorry for the HTML escape characters, I rewrite the problem as following:
SQL select count(a.PA01AI01) from p.PRH_PA01 as a
failed with :
Caused by: java.sql.SQLException: Error while executing SQL "select count(a.PA01AI01) from p.PRH_PA01 as a
": From line 1, column 16 to line 1, column 23: Column 'PA01AI01' not found in table 'a'
to resolve the problem we must make the table fields of the target Java class as public, is this a rule for ReflectiveSchema?