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 > >