我面臨例外在線路鑄造BIGDECIMAL到整數
int cdStatus = ((Integer)vecColumns.elementAt(1)).intValue();
00000050 CommerceSrvr E com.ibm.commerce.command.ECCommandTarget executeCommand CMN0420E:
The following command exception has occurred during processing: "java.lang.ClassCastException: java.math.BigDecimal incompatible with java.lang.Integer".
java.lang.ClassCastException: java.math.BigDecimal incompatible with java.lang.Integer
at com.ibm.commerce.promotion.facade.server.commands.ValidateUniquePromotionCodesTaskCmdImpl.verifyPromotionCodes(ValidateUniquePromotionCodesTaskCmdImpl.java:137)
at com.ibm.commerce.promotion.facade.server.commands.ValidateUniquePromotionCodesTaskCmdImpl.performExecute(ValidateUniquePromotionCodesTaskCmdImpl.java:84)
這裏veColumn是一個向量和ElementAt的(1)是在數據庫和SMALLINT類型在數據庫中的一側的coloumn。我不確定這張照片有多大的小數點?
執行的查詢是「從px_cdusage pcu選擇pcp.code,pcu.status,px_cdpool pcp其中pcu.px_cdpool_id = pcp.px_cdpool_id和pcp.usagetype = 0並且pcp.code in(從ordpromocd選擇代碼where orders_id = 8443468 )「,並且pcu.status在這裏顯示SMALLINT作爲它在oracle上的類型。請參閱鏈接http://www-01.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.database.doc/database/px_cdusage.htm –
這是數據庫類型。它不必反映它在Java中的類型。現在,這部分異常告訴我你已經有了一個BigDecimal,並且你試圖將它轉換爲Integer。您也可以使用調試器查看'vecColumns'的內容並親自查看。 '在處理過程中發生以下命令異常:「java.lang.ClassCastException:java.math.BigDecimal與java.lang.Integer不兼容」.' – mpkorstanje