DB2 7 blows. I went and tried the same code on a workstation with a DB2 8 client and it worked. Sorry for wasting your time.

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



Reply via email to