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



Reply via email to