Brandon Goodin wrote:
what is the driver and database that you are using?
On Fri, 18 Feb 2005 11:26:35 -0500, Mike Zatko <[EMAIL PROTECTED]> wrote:
2.0.9
Brandon Goodin wrote:
what version of ibatis are you using?
On Fri, 18 Feb 2005 11:16:23 -0500, Mike Zatko <[EMAIL PROTECTED]> wrote:
*I tried it and it does not work. My error is as follows:*
ResultSetLogProxy.java|41|DEBUG|2005-02-18 11:13:16,756|3766|{rset-100020} ResultSet PromotionFacadeSqlMapsImpl.java|71|ERROR|2005-02-18 11:13:16,772|3782| --- The error occurred in configs/sqlmaps/promotions-sql.xml. --- The error occurred while applying a result map. --- Check the adjustment.getPromotionActionMap. --- The error happened while setting a property on the result object. --- Cause: com.ibatis.common.beans.ProbeException: Could not set property 'numberOfItems' for com.boscovs.commerce.promotion.dao.ActionDAO. Cause: java.lang.IllegalArgumentException Caused by: java.lang.IllegalArgumentException com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in configs/sqlmaps/promotions-sql.xml. --- The error occurred while applying a result map. --- Check the adjustment.getPromotionActionMap. --- The error happened while setting a property on the result object. --- Cause: com.ibatis.common.beans.ProbeException: Could not set property 'numberOfItems' for com.boscovs.commerce.promotion.dao.ActionDAO. Cause: java.lang.IllegalArgumentException Caused by: java.lang.IllegalArgumentException Caused by: com.ibatis.common.beans.ProbeException: Could not set property 'numberOfItems' for com.boscovs.commerce.promotion.dao.ActionDAO. Cause: java.lang.IllegalArgumentException Caused by: java.lang.IllegalArgumentException at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:183) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69) at com.boscovs.commerce.promotion.PromotionFacadeSqlMapsImpl.applyPromotions(PromotionFacadeSqlMapsImpl.java:61) at test.PromotionTest.execute(PromotionTest.java:106) at test.PromotionTest.main(PromotionTest.java:171) Caused by: com.ibatis.common.beans.ProbeException: Could not set property 'numberOfItems' for com.boscovs.commerce.promotion.dao.ActionDAO. Cause: java.lang.IllegalArgumentException Caused by: java.lang.IllegalArgumentException at com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:309) at com.ibatis.common.beans.JavaBeanProbe.setObject(JavaBeanProbe.java:229) at com.ibatis.common.beans.GenericProbe.setObject(GenericProbe.java:73) at com.ibatis.sqlmap.engine.accessplan.ComplexAccessPlan.setProperties(ComplexAccessPlan.java:34) at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:296) at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:60) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:355) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:179) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:200) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:168) ... 8 more Caused by: java.lang.IllegalArgumentException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:298) ... 18 more
*Is it possible that its my database that is the problem? I am using DB2 V7.2.*
Brandon Goodin wrote:
I would recommend that you specify the jdbcType in your result.
<result property="numberOfItems" column="min_item_quantity" jdbcType="INTEGER" javaType="int"/>
On Fri, 18 Feb 2005 06:55:01 -0800 (PST), Karen Koch <[EMAIL PROTECTED]> wrote:
Are you perhaps missing the parameterClass arg on the statement itself?
--- Mike Zatko <[EMAIL PROTECTED]> wrote:
/*I have a table as follows:*/
sqltype sqllen sqlname.data sqlname.length -------------------- ------ ------------------------------ -------------- 492 BIGINT 8 PROMO_ACTION_ID 15 492 BIGINT 8 PROMOTION_ID 12 452 CHARACTER 1 ACTIONTYPE 10 497 INTEGER 4 MIN_ITEM_QUANTITY 17 485 DECIMAL 20, 5 MIN_SINGLE_ITEM_VALUE 21 485 DECIMAL 20, 5 MIN_TOTAL_ITEM_VALUE 20 485 DECIMAL 20, 5 MIN_ORDER_VALUE 15
/*I have the following ResultMap*/
<resultMap id="getPromotionActionMap" class="com.boscovs.commerce.promotion.dao.ActionDAO"> <result property="type" column="actiontype" /> <result property="numberOfItems" column="min_item_quantity" javaType="int"/> <result property="individualItemValue" column="min_single_item_value" javaType="double"/> <result property="totalItemValue" column="min_total_item_value" javaType="double"/> <result property="totalValue" column="min_order_value" javaType="double"/> </resultMap>
<select id="getPromotionAction" resultMap="getPromotionActionMap"> <![CDATA[Select a.actiontype, a.min_item_quantity, a.min_single_item_value, a.min_total_item_value, a.min_order_value from DB2USR.PROMOTION as p, DB2USR.PROMO_ACTION a where p.promotion_id = a.promotion_id and p.promotion_id = #value# and p.status='A']]> </select>
/*My bean is as follows*/
public class ActionDAO {
public static enum Selected { UNSELECTED, NO_ACTION, ADDS_X_ITEMS, TOTAL_ORDER_VALUE_AT_LEAST_X }
private Selected selected = Selected.UNSELECTED; private XItems xItems; private double totalValue; private int numberOfItems; private double individualItemValue; private double totalItemValue; private String type;
/** * @return */ public Selected getSelected() { return selected; }
/** * @return */ public double getTotalValue() { return totalValue; }
/** * @return */ public XItems getXItems() { return xItems; }
/** * @param i */ public void setSelected(Selected i) { selected = i; }
/** * @param d */ public void setTotalValue(double d) { totalValue = d; }
/** * @param items */ public void setXItems(XItems items) { xItems = items; }
public void setType(String type) { this.type = type; }
public double getIndividualItemValue() { return individualItemValue; } public void setIndividualItemValue(double individualItemValue) { this.individualItemValue = individualItemValue; } public int getNumberOfItems() { return numberOfItems; } public void setNumberOfItems(int numberOfItems) { this.numberOfItems = numberOfItems; } public double getTotalItemValue() { return totalItemValue; } public void setTotalItemValue(double totalItemValue) { this.totalItemValue = totalItemValue; } /** * toString method: creates a String representation of the object * @return the String representation * @author */ public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("ActionDAO["); buffer.append("individualItemValue = ").append(individualItemValue); buffer.append(", numberOfItems = ").append(numberOfItems); buffer.append(", selected = ").append(selected); buffer.append(", totalItemValue = ").append(totalItemValue); buffer.append(", totalValue = ").append(totalValue); buffer.append(", type = ").append(type); buffer.append(", xItems = ").append(xItems); buffer.append("]"); return buffer.toString(); }}
/*I get an IllegalArgumentException from all this query. The developers guide infers that you can use primitives in your definitions. Does it? Or am I doing something stupid and not realizing it? BTW, it works if I use Wrapper classes, but I don't want to have to go through all of my beans and covert them. Thanks for any help.*/
-- Michael H. Zatko Java Enterprise Developer Boscov's Information Services Work: 610-929-7317 Home: 610-376-1624 Page: 610-736-4460
-- Michael H. Zatko Java Enterprise Developer Boscov's Information Services Work: 610-929-7317 Home: 610-376-1624 Page: 610-736-4460
-- Michael H. Zatko Java Enterprise Developer Boscov's Information Services Work: 610-929-7317 Home: 610-376-1624 Page: 610-736-4460