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